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了!
python 通过win32com操作vcf到outlook中,同时解决乱码问题的更多相关文章
- Python后端日常操作之在Django中「强行」使用MVVM设计模式
扫盲 首先带大家了解一下什么是MVVM模式: 什么是MVVM?MVVM是Model-View-ViewModel的缩写. MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已 ...
- 在Outlook中查看预览SharePoint文档库的文档
本文概况 阅读时间: 约2分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户,管理员 难度指数:★★☆☆☆ 在日常工作中,总有一些常用的文档需要经常打开查看,其实我 ...
- Python使用boto3操作AWS S3中踩过的坑
最近在AWS上开发部署应用. 看了这篇关于AWS中国区填坑的文章,结合自己使用AWS的经历,补充两个我自己填的坑. http://www.jianshu.com/p/0d0fd39a40c9?utm_ ...
- win32com操作word(1):几个重要的对象(28.35)
Pywin32模块为python封装了操作windows底层API函数的功能.而win32com是Pywin32下面的一个模块,专门负责操作com组件. 由于office工具(Word.Excel等) ...
- win32com操作word API精讲&项目实战 预告
对win32com的使用和研究有好一段时间了,想起本人刚开始做word编程项目时的各种痛苦:网上能找到的都是简单的示例,如同hello word一般,嚼之无味又无可奈何.读office的word接口文 ...
- win32com操作word 第三集:Range精讲(一)
本课程<win32com操作word API精讲&项目实战>,本公众号以文字分享为主,B站与视频号则发布视频分享,ID均为:一灯编程 本集开始,将会深入Document接口.打开或 ...
- python高级之操作数据库
python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...
- Python 文件常见操作
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
随机推荐
- VUE 轮询、轮询终止 beforeRouteLeave
目录 1 在data中定义 2 在methods中定义 3 开始轮询 4 终止轮询 方法一: destroyed() 方法二:beforeRouteLeave(to, from, next) 推荐 所 ...
- IDEA本地运行无法找到scope为provided的包
异常描述 java.lang.ClassNotFoundExcetion 解决方案 Run->Edit Configrations 弹出如下窗口 1.选中你的应用,2.点击Modify opti ...
- 12月5日内容总结——JS基础知识及变量常量、基本数据类型、运算符、流程控制、函数、内置对象
目录 一.JS简介 简介 ECMAScript的历史 二.JS基础 1.注释语法 2.引入js的多种方式 3.结束符号 三.变量与常量 编写和运行js代码的两种方式 变量声明 四.基本数据类型 1.数 ...
- 编程哲学之 C# 篇:003——为什么选择 C#
国内开设C#课程的学校或培训机构是越来越少,使用C#作为开发的语言企业也是越来越少.企业要招C#的开发人员越来越难,会C#的要开发人员要找工作也是越来越难,然后我还是选择C#作为本系列的主要语言,我给 ...
- python字符串表达式求值
背景: 在开发的过程中涉及到动态的根据公式计算数值 技术上选择了python a= eval("1+2*(3+1)") print(a)
- [USACO17JAN]Cow Dance Show S更新ing
这道题目是二分舞台大小,为什么能用二分呢?因为如果mid成立 则mid~r都成立,如果mid不成立l~mid就都不成立,也就是严格单调,所以可以使用二分快速找到k. check函数的思路: 实现:在舞 ...
- 20个 Git 命令玩转版本控制
想要在团队中处理代码时有效协作并跟踪更改,版本控制发挥着至关重要的作用.Git 是一个版本控制系统,可以帮助开发人员跟踪修订.识别文件版本,并在必要的时候恢复旧版本.Git 对于有一定编程经验的用户来 ...
- ubuntu安装deb时出现Unknown media type in type 'chemical/......
Unknown media type in type 'chemical/......我找到了文件/usr/share/mime/packages/chemical-mime-data.xml. 在文 ...
- JavaScript是怎样实现继承的?
一.是什么 继承(inheritance)是面向对象软件技术当中的一个概念. 如果一个类别B"继承自"另一个类别A,就把这个B称为"A的子类",而把A称为&qu ...
- JavaScript原型和原型链?有什么特点?
一.原型 JavaScript 常被描述为一种基于原型的语言--每个对象拥有一个原型对象 当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上 ...