Převod souboru ABCDDB do CSV
Exportujte data z Apple Contacts do CSV prostřednictvím vCards pro tabulkové procesory, CRM a import kontaktů.
Vytvořte soubory CSV online
Soubory ABCDDB zatím číst neumíme, takže tenhle převod nenabízíme. Pokud dokážete svou práci uložit do některého z těchto formátů nebo dalších, CSV z něj vyrobíme:
Chcete převádět ABCDDB na CSV?
Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.
Jak převést soubor abcddb do formátu csv
- Soubory kontaktů a adresářů
- Dosud nehodnoceno.
Software pro tabulky, CRM a mailingové seznamy obecně nedokáže přímo otevřít interní databázi ABCDDB společnosti Apple, takže kontakty je nejprve nutné exportovat do přenosného formátu. Převodem exportovaných vCard do formátu CSV se záznamy stanou použitelnými v aplikacích, které vyžadují řádky a sloupce.
Co je formát ABCDDB
ABCDDB je interní databázový formát používaný aplikacemi macOS Address Book a Contacts. Běžný název souboru je AddressBook-v22.abcddb, obvykle umístěný v ~/Library/Application Support/AddressBook/; přesný název souboru, schéma a umístění se liší podle verze macOS.
Jedná se o aplikační databázi založenou na SQLite, nikoli o formát pro výměnu kontaktů. Složka AddressBook může obsahovat fotografie kontaktů, indexy, data účtů, metadata a další soubory. Nepřejmenovávejte soubor na .csv ani neupravujte jeho tabulky SQLite, pokud neprovádíte specializovanou obnovu dat; přímá extrakce z databáze může odhalit podrobnosti privátního schématu a vést k neúplným, duplicitním nebo nesprávně propojeným kontaktům.
Co je formát CSV
CSV reprezentuje tabulku jako záznamy oddělené řádky a pole oddělená oddělovačem, obvykle čárkou. Přijímají jej tabulkové aplikace, CRM, databáze, systémy mailingových seznamů a mnoho nástrojů pro import kontaktů.
CSV může obsahovat běžné hodnoty, jako jsou jména, organizace, pracovní pozice, telefonní čísla, e-mailové adresy, poštovní adresy a poznámky. Nemá univerzální standard pro pole, popisky, kódování ani escapování a nativně nedokáže zachovat fotografie kontaktů, skupiny, propojené karty, metadata účtů ani všechna vlastní pole Apple.
Jak převést kontakty
Export vCard z Contacts
- Ukončete aplikaci Contacts a zálohujte celou složku
~/Library/Application Support/AddressBook/, místo abyste se spoléhali na kopii jediného databázového souboru. - Otevřete Contacts na Macu obsahujícím záznamy. Pokud kontakty patří do účtu iCloud, Exchange, Google nebo jiného účtu, počkejte na dokončení synchronizace.
- Vyberte požadované karty nebo stisknutím
Command-Avyberte všechny karty. - Zvolte File → Export → Export vCard a uložte výsledný soubor
.vcf. - Převeďte soubor
.vcfdo formátu CSV pomocí lokálního nástroje nebo skriptu. Desktopové aplikace pro převod vCard do CSV mohou nabídnout mapování polí; lokální skript poskytuje větší kontrolu a zabraňuje nahrávání osobních kontaktních údajů.
U malého exportu bez citlivých údajů mohou převod VCF do CSV nabídnout online služby, jako jsou CloudConvert nebo Convertio. Ověřte, zda služba aktuálně podporuje vstup .vcf a výstup CSV, a před nahráním adresáře si pročtěte podmínky uchovávání a mazání dat.
Lokální převod vCard pomocí Pythonu
Nainstalujte parser:
python3 -m pip install vobject
Uložte následující kód jako vcf_to_csv.py. Načte standardní vlastnosti vCard pro jméno, organizaci, adresu, e-mail, telefon a poznámku a zapíše soubor CSV v kódování UTF-8:
import csv
import sys
import vobject
source, destination = sys.argv[1], sys.argv[2]
fields = [
"first_name", "last_name", "organization", "title",
"email", "phone", "street", "city", "region", "postal_code",
"country", "note"
]
def items(card, name):
return card.contents.get(name, [])
def text(value):
if isinstance(value, (list, tuple)):
return ", ".join(str(x) for x in value)
return str(value) if value is not None else ""
def first(card, name):
values = items(card, name)
return text(values[0].value) if values else ""
def name_parts(card):
values = items(card, "n")
if not values:
return "", ""
name = values[0].value
return text(name.given), text(name.family)
with open(source, encoding="utf-8") as handle:
cards = list(vobject.readComponents(handle.read()))
with open(destination, "w", newline="", encoding="utf-8-sig") as output:
writer = csv.DictWriter(output, fieldnames=fields)
writer.writeheader()
for card in cards:
given, family = name_parts(card)
addresses = items(card, "adr")
address = addresses[0].value if addresses else None
writer.writerow({
"first_name": given,
"last_name": family,
"organization": first(card, "org"),
"title": first(card, "title"),
"email": "; ".join(text(x.value) for x in items(card, "email")),
"phone": "; ".join(text(x.value) for x in items(card, "tel")),
"street": text(address.street) if address else "",
"city": text(address.city) if address else "",
"region": text(address.region) if address else "",
"postal_code": text(address.code) if address else "",
"country": text(address.country) if address else "",
"note": first(card, "note"),
})
Spusťte jej pomocí:
python3 vcf_to_csv.py contacts.vcf contacts.csv
Při importu souboru contacts.csv vyberte kódování UTF-8 a jako oddělovač čárku, pokud se na to cílová aplikace zeptá. Značka UTF-8 BOM použitá skriptem pomáhá některým verzím Microsoft Excelu správně rozpoznat znaky mimo ASCII.
Omezení kvality a kompatibility
Skript kombinuje více e-mailových adres a telefonních čísel v jednom poli odděleném středníky. Pokud cílová aplikace vyžaduje samostatné sloupce, upravte skript tak, aby zapisoval pole jako email_1, email_2, phone_1 a phone_2.
Zapíše se pouze první poštovní adresa. Popisky adres, další adresy, skupiny kontaktů, fotografie, narozeniny, URL, vztahy, vlastní pole a některá metadata specifická pro účty se vynechají, pokud skript nebo schéma cílové aplikace nerozšíříte.
Po importu zkontrolujte jména, mezinárodní telefonní čísla, víceřádkové adresy, popisky, duplicitní karty, znaky mimo ASCII a prázdná pole. CSV nemá pevné schéma kontaktů, takže způsob interpretace jednotlivých sloupců určuje pravidla mapování polí cílové aplikace.
Informace o příponách a typech souborů poskytuje File-Extensions.org