Python-Skript zum Zusammenführen mehrerer vCard- (.vcf-)Dateien in eine.
merge_vcf.py
#!/usr/bin/env python3
import os
import sys
# Prüfen, ob das Verzeichnis als Befehlszeilenargument angegeben wird
if len(sys.argv) != 2:
print("Usage: python merge_vcf.py <directory>")
sys.exit(1)
# Verzeichnis aus dem Befehlszeilenargument abrufen
directory = sys.argv[1]
# Prüfen, ob das angegebene Argument ein gültiges Verzeichnis ist
if not os.path.isdir(directory):
print(f"{directory} is not a valid directory.")
sys.exit(1)
# Ausgabedateinamen auf den Verzeichnisnamen plus ".vcf" setzen
output_file = os.path.basename(os.path.normpath(directory)) + '.vcf'
output_file_path = output_file
# Prüfen, ob die Ausgabedatei bereits existiert
if os.path.exists(output_file_path):
print(f"{output_file_path} already exists. Exiting...")
else:
# Liste aller .vcf-Dateien im angegebenen Verzeichnis abrufen
vcf_files = [file for file in os.listdir(directory) if file.endswith('.vcf') and file != output_file]
# Ausgabedatei im Schreibmodus öffnen
with open(output_file_path, 'w', encoding="utf-8") as outfile:
# Jede vcf-Datei durchlaufen und ihren Inhalt an die Ausgabedatei anhängen
for vcf in vcf_files:
with open(os.path.join(directory, vcf), 'r', encoding="utf-8") as infile:
try:
outfile.write(infile.read())
# Sicherstellen, dass eine neue Zeile zwischen verschiedenen vCard-Dateien steht
outfile.write('\n')
except UnicodeEncodeError:
print("Encode error while processing", vcf)
print(f"All vCard files have been merged into {output_file_path}")Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow