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:/ ...
随机推荐
- (数据科学学习手札149)用matplotlib轻松绘制漂亮的表格
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,matplotlib作为数据可 ...
- ElasticSearch分布式搜索引擎——从入门到精通
ES分布式搜索引擎 注意: 在没有创建库的时候搜索,ES会创建一个库并自动创建该字段并且设置为String类型也就是text 什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现 ...
- SpringBoot项目启动后再请求远程接口的实现方式
场景 有一个SpringBoot项目需要在启动后请求另一个远程服务拿取配置,而不是加载过程中去请求,可能会出现类没有实例化的场景,因此需要实现项目完全启动后再进行请求的场景. 解决 一般会有两种实现方 ...
- springboot返回数据null参数设为空字符串或空数组
package com.ruoyi.framework.config.ResponseVoConfig.WebConfig; /** * @Classname MyJsonMapper * @Desc ...
- P27_wxss - 全局样式和局部样式
全局样式 定义在 app.wxss 中的样式为全局样式,作用于每一个页面. 局部样式 在页面的 .wxss 文件中定义的样式为局部样式,只作用于当前页面. 注意: 当局部样式和全局样式冲突时,根据就近 ...
- Spring Boot整合Redis-CRUD
Springboot整合redis spring Data Redis 操作Redis 1.pom.xml <?xml version="1.0" encoding=&quo ...
- JZOJ 3992.Christmas
题目大意 给定一个数列,支持区间加一个数和区间取 \(max\),询问单点询问数值和它被更改的次数 思路 模板的吉司机线段树 维护区间最小值和严格次小值以及最小值的个数 针对询问维护区间和以及区间修改 ...
- 单词检索(search)
单词检索(search) \(Description\) 小可可是学校图书馆的管理员,现在他接手了一个十分棘手的任务. 由于学校需要一些材料,校长需要在文章中检索一些信息.校长一共给了小可可N篇文章, ...
- 超声和免疫学指标的特征能否反映RA临床缓解的表型?[EULAR2015_THU0121]
超声和免疫学指标的特征能否反映RA临床缓解的表型? THU0121 DO THE IMMUNOLOGICAL AND ULTRASOUND CHARACTERISTICS REFLECT THE ...
- 结合代码和内存变化图一步步弄懂JVM的FullGC
1.年轻代存活的对象太多,老年代了放不下 01.示例代码 public class DemoTest1 { public static void main(String[] args) { byte[ ...