vcf通讯录转excel


    老父亲从手机导出了一个vcf格式的通讯录,让我帮他转成excel格式的好打印出来,我根据百度捣鼓了半天都没有成功。生气了,还是伟人说得好,自己动手,丰衣足食。

    用文本编辑器打开vcf一看,就是文本格式,我只需要把它转换成csv格式,然后就可以导入到Excel中了,cvf中每个名片的格式大概如下:

BEGIN:VCARD
VERSION:3.0
N:x;xx;;;
FN:xxx
TEL;TYPE=CELL:13333333333
TEL;TYPE=HOME:01088887777

END:VCARD

  从内容看,只需要取"FN:"、"TEL"打头的字段,遇到"END"再开始下一个名片

    Python代码如下:

with open("f:/contacts.vcf", 'r') as rf, open('e:/contacts.csv', 'w') as wf:
    content = ['', '', '', '']
    tel = 0
    for line in rf.readlines():
        if line.startswith('FN:'):
            content[0] = line[3:].strip()
        elif line.startswith('TEL'):
            if tel > 2:
                continue
            pos = line.find(':')
            content[tel + 1] = line[pos + 1:].strip()
            tel = tel + 1
        elif line.startswith('END'):
            str = ','.join(content) + '\n'
            wf.write(str)
            content = ['', '', '', '']
            tel = 0
E盘根目录下csv就出来了,然后打开Excel,数据->导入->编辑,把电话号码的那几列都改成文本,否则不是变成科学计数法就是电话号码最前面的0会丢,然后确定、保存,结束!
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值