看到有人问怎么转换,自己生成了一个vcf文件,学习到了QUOTED-PRINTABLE编码,就顺手写了一个简单的转换代码,不过只能转换名字和电话号码,电话的格式也不知道全不全,我的手机联系人不多,一共就只有三种,也没存邮箱,如果有需求大家应该也能简单改出来,代码如下:

import quopri
import xlwt# 请更改为自己的vcf文件,我的从三星手机中导出
file=open('lxr.vcf','rb')
book=xlwt.Workbook(encoding="utf-8",style_compression=0)
sheet = book.add_sheet('contact', cell_overwrite_ok=True)people_list = list()
phone_list = list()
for line in file:line = str(line,encoding = "utf8")if 'BEGIN:VCARD' in line:phone_list=list()if 'N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:' in line and 'FN' not in line:try:name=quopri.decodestring(line[line.index('N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:')+42:line.index(';;;')]).decode()except:line = line+str(file.readline(),encoding = "utf8")name=quopri.decodestring(line[line.index('N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:')+42:line.index(';;;')]).decode()name=name.replace(';','')# 如果有其他前缀按下面的方式添加,邮箱应该也同理if 'TEL;CELL:' in line:phone_list.append(line[line.index('TEL;CELL:')+len('TEL;CELL:'):-2])if 'TEL;HOME:' in line:phone_list.append(line[line.index('TEL;HOME:')+len('TEL;HOME:'):-2])if 'TEL;CELL;PREF:' in line:phone_list.append(line[line.index('TEL;CELL;PREF:')+len('TEL;CELL;PREF:'):-2])if 'END:VCARD' in line:people_list.append((name,phone_list))for i in range(len(people_list)):sheet.write(i,0,people_list[i][0])for j in range(len(people_list[i][1])):sheet.write(i,j+1,people_list[i][1][j])
book.save('concat.xls')

另祝大家在家学习愉快~

python vcf转换xls的简单实现相关推荐

  1. python 批量转换xls to xlsx,出现pywintypes.com_error: (-2147417848, ‘被调用的对象已与其客户端断开连接)’的问题处理

    先上python批量转换xls文件转xlsx文件的源代码: import os import win32com.client as win32def change_xls_to_xlsx():p_pr ...

  2. python处理excel案例_使用Python处理Excel表格的简单方法

    使用Python处理Excel表格的简单方法 Excel 中的每一个单元,都会有这些属性:颜色(colors).number formatting.字体(fonts).边界(borders).alig ...

  3. 以下不是python文件读写方法的是-使用Python进行二进制文件读写的简单方法(推荐)...

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块. python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据 ...

  4. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

  5. python 二进制文件_使用Python进行二进制文件读写的简单方法(推荐)

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块. python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据 ...

  6. python 图像格式转换_如何用六行Python构建图像类型转换器

    python 图像格式转换 by AMR 通过AMR 如何用六行Python构建图像类型转换器 (How to build an image type convertor in six lines o ...

  7. python提取数组元素_python简单获取数组元素个数的方法

    python简单获取数组元素个数的方法 更新时间:2015年07月13日 17:54:46 作者:pythoner 这篇文章主要介绍了python简单获取数组元素个数的方法,实例分析了Python中l ...

  8. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  9. python能以文本和二进制方式处理文件_使用Python进行二进制文件读写的简单方法(推荐)...

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块. python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据 ...

  10. python大小写转换_python字符串大小写转换

    原博文 2020-03-24 15:48 − str = "www.runoob.com" print(str.upper()) # 把所有字符中的小写字母转换成大写字母 prin ...

最新文章

  1. pyinstaller打包py文件生成的exe出现闪退问题
  2. OpenCV中cvAdds和cvAdd中的mask的用法探讨
  3. 2019.4.17 映纷创意首页铺设练习
  4. 你真的会用ABAP, Java和JavaScript里的constructor么?
  5. 用c语言实现0到59的数码管,跪求单片机0~99数码管显示用C语言编写的程序
  6. 教你十分钟快速搭建springBoot项目实战
  7. Codeforces 1005D Polycarp and Div 3
  8. Intel 中断和异常处理 - 目录
  9. C# 自动投票和手机号码归属地查询 - 简单程序源码分享(高手飘过)
  10. 推荐两份学习 Kotlin 和机器学习的资料
  11. 理解乐观锁、悲观锁、共享锁、排他锁、表锁、行锁
  12. mysql磁盘空间满了会崩吗_磁盘空间不够导致mysql崩溃重启
  13. 后台管理系统 – 权限管理
  14. 2017年数模国赛B题第一小题的思路过程(个人思路)
  15. 政府12345便民服务热线 -- MICC全媒体智能呼叫中心建设方案
  16. 网站建设经验分享:如何设计及运营网站
  17. c语言1到100奇数和与偶数和,C语言实现1到100的和奇数与偶数和
  18. a4504光耦怎么检测好坏_怎样判断光耦的好坏
  19. 360WiFi之愚见
  20. 软文营销文案写作如何用创意编制想象力“城堡”

热门文章

  1. 学习新方法:帅到没朋友
  2. 【2019/02/18测试T3】飘雪圣域
  3. 给十二星座女生送礼物的技巧
  4. Tableau:树状图
  5. centos7 oracle11gR2安装
  6. 网盘上传文件服务器失败原因,win7系统在百度网盘上传文件一直失败的解决方法...
  7. NovelAi + Webui + Stable-diffusion本地配置
  8. 你应该知道的10 种跨域解决方案(附终极方案)
  9. 逆火软件测试工资,逆火刷机软件介绍和软件使用说明
  10. PHP编写poc,代码实战/萌新如何编写sql注入的poc