читать файлы vcf, содержащие персидское имя - PullRequest
0 голосов
/ 05 мая 2020

Я хочу прочитать файл VCF, который содержит имена с персидскими символами в кодировке UTF8:

BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;=D8=B9=D9=84=D9=89=20=D9=85=D8=B1=D8=AD=D9=85=D8=AA=D9=89;;;
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=D8=B9=D9=84=D9=89=20=D9=85=D8=B1=D8=AD=D9=85=D8=AA=D9=89
TEL;CELL;PREF:123456789
END:VCARD

Код:

file = open('./contact.vcf', 'r', encoding="utf-8")
    contacts = []
    for line in file:
        name = re.findall('FN:(.*)', line)
        nm = ''.join(name)
        if len(nm) == 0:
            continue

        data = {'name': nm.strip()}
        for lin in file:
            tel = re.findall('TEL;CELL;?(?:PREF)?:(.*)', lin)
            tel = ''.join(tel)

            if len(tel) == 0:
                continue

            tel = tel.strip()
            tel = ''.join(e for e in tel if e.isalnum())
            data['phone'] = tel
            break

        contacts.append(data)

Когда дело доходит до персидских имен, это пусто и сделано перерыв Но должен быть более элегантный способ? Может ли кто-нибудь указать мне в этом направлении?

...