python 通过win32com操作vcf到outlook中,同时解决乱码问题

之前用的黑莓手机,故障后换了iphone,后来还是想用上黑莓Q10。于是有了该文章。
问题:
如何将iphone上的通讯录导入黑莓?

网上回答1:通过icloud将iphone中的通讯录导入黑莓手机。
结果:在黑莓Q10上登录icloud的服务器contacts.icloud.com时,报错。。。无果。

网上回答2:通过qq或者微信同步助手。
结果:在iphone上没装这些软件,而且要做Q10上安装响应的软件才能同步。。。无果。

网上回答3:将iphone上的通讯录存到sim卡中。
结果:sim卡容量不够,手机上的通讯录有498条,不能转到sim卡上。。。无果。

解决办法:将iphone上的通讯录导出到vcard中,再通过outlook存入黑莓Q10
step1:打开itools.exe,将通讯录导出VCARD

然而。打开看到是乱码,如下:

在网上查到可以用win32com操作outlook。。。于是,用python,并且通过转码,导入outlook。代码如下:

#conding:utf-8
# 使用python操作outlook中的通讯录
# 如果在循环列表外面,生成一张通讯录,那么在存入的时候,会不断覆盖。
# 所以需要在每一个循环列表中生成一张通讯卡
import os
import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application")
#newContact = outlook.CreateItem(2)  #只生成一张通讯卡

contactList = os.listdir("contacts")
for contact in contactList:
    print(contact)
    with open(os.path.join("contacts",contact),encoding="utf-8") as f:
        vcard = f.readlines()
        LastName = vcard[4].split(":")[1]
        MobileTelephoneNumber = vcard[5].split(":")[1]
        newContact = outlook.CreateItem(2)      #每次创建一张通讯卡
        
        newContact.FirstName = LastName
        newContact.MobileTelephoneNumber = MobileTelephoneNumber
        newContact.save()
        
print("done")

这样,在outlook中,全部显示正常了。也不乱码了。

再通过黑莓 blackberrylink ,将通讯录进行同步,就OK了!

posted @ 2020-05-24 13:52  daivlin  阅读(435)  评论(0编辑  收藏  举报