首页 > 编程语言 > 详细

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

时间:2020-05-24 14:22:30      阅读:81      评论:0      收藏:0      [点我收藏+]

之前用的黑莓手机,故障后换了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了!

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

原文:https://www.cnblogs.com/daivlin/p/12950803.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!