经常会遇到将手机通讯录导出到电脑并转化为在电脑中可编辑的情况,在网上搜索了很久当前不外乎两种处理方式。1.使用电脑的outlook的通讯簿功能,将手机导出的vcf文件导入到outlook的通讯录中,然后再导出为可编辑文件;2.是使用专用软件直接打开vcf文件。很不幸两种都不适合我,第一种导出到outlook后人名部分全是乱码,第二种方式下载软件后就没打开成功(有可能下载的软件与我的电脑不兼容)。

在网上也找了一些python的代码自己转化,一直没有找到合适的代码,我的vcf文件中的名称部分是QP编码格式。下面将我自己处理过程简单描述一下。

手机:华为MATE系列

python环境:python3.6.2

1.首先检查导出的vcf文件用文本编辑打开,会发现是如下的一些格式,从“ENCODING=QUOTED-PRINTABLE”可以看出名称部分是QP编码,对该部分进行编码才是关键

BEGIN:VCARD

VERSION:2.1

N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;=E5=86=AF=E8=94=B5=E5=B6=A5;;;

FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=B7=A5=20=E8=94=B6=20=E5=86=AF

TEL;CELL:1-351-886-xxxx

END:VCARD

2.导入import quopri,对QP部分进行解码,截取Q P编 码内容在此不赘述

对中文名称部分进行解码: quopri.decodestring(line[43:-3]).decode('utf-8')

对英文名称部分进行解码:quopri.decodestring(line[43:]).decode('utf-8')

3.另外还有一点vcf导出的电话有些是有空格,有些是有“-‘,所以最好用以下语句规范化一下

(line[9:]).replace("-","").replace(" ","") + ",";

OK,到此基本上已经大功告成,我是写个循环,将cvf文件所有名片都循环处理一遍然后导入到一个csv文件中。

以后可以定期将手机通讯录导到电脑了。

pta通讯录排序用python实现,python实现将android手机通讯录vcf文件转化为csv相关推荐

  1. [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. Android手机通讯录备份和恢复项目

    Android手机通讯录备份和恢复项目 附下载地址** 登录功能 注册功能 找回密码 修改密码 备份功能 恢复功能 恢复数据从服务器 导出为Excel文件 登录功能 注册功能 找回密码 同注册功能 修 ...

  3. android 添加通讯录联系人头像,Android 手机通讯录开发时给联系人添加头像失败的坑...

    Android 手机通讯录开发时给联系人添加头像失败的坑,在给联系人添加头像代码 Bitmap photo = ...; // 将 Bitmap 转为 byte[] byte[] bytes = Ls ...

  4. 一篇很好的关于Android的本科毕业论文《基于android手机通讯录的设计与实现毕业论文》转自百度

    本文转自: http://wenku.baidu.com/view/bb7dad58804d2b160b4ec058.html 相应的word文档csdn下载地址: http://download.c ...

  5. android备份手机号码,Android手机通讯录备份还原代码

    最近想写段Android程序玩玩.开发环境 Eclipse ,Android 2.2 开发环境搭建 1.先安装jdk 2.下载安装eclipse 3.下载安装android sdk 4.安装eclip ...

  6. python实现批量添加联系人到手机通讯录+python可视化编程案例

    简要 本案例通过python+pandas实现提取excel工作表中的数据,并将其添加相关代码信息,再保存为txt,然后保存为后缀名为.vcf的通讯录备份文件,此文件可以直接使用手机自带通讯录软件打开 ...

  7. Python 最简单的实例:手机通讯录

    通讯录是记录了联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人 们可以在通讯录中通过姓名查看相关联系人的联系方式.邮箱.地址等信息,也可以在其中 新增联系人,或修改.删除联系人信息. 通 ...

  8. python基础编程小实例13——手机通讯录

    本文更新于2022/05/18,bug已修复. 编程语言:python3.9 题目 可以在通讯录中通过姓名查看相关联系人的联系方式等信息,也可以在其中新增联系人,或修改.删除联系人信息. 本实例要求编 ...

  9. python提取文本中的手机号_Python从vcf文件中读取手机号并进行去重操作

    文章目录 1. Python代码 file = open('test.vcf', 'r', encoding='utf-8') tels = [] for line in file: line = l ...

最新文章

  1. 雪花算法 Java 版
  2. elk6.3.1版本+metricbeat监控收集swarm的资源使用情况
  3. 简述configure、pkg-config、pkg_config_path三者的关系
  4. @async 默认线程池_springboot@Async默认线程池导致OOM问题
  5. FFT-Matlab初步实现
  6. Python开发中收集的一些常用功能Demo
  7. 事件(二):事件处理程序
  8. linux中磁盘的iused,Linux 磁盘与文件系统管理
  9. 转:PHP开发框架流行度排名:Laravel居首
  10. php更新记录没有获取值,php – 节点更新:获取旧值
  11. C++如何写adaptable仿函数
  12. Java毕设项目——智能仓储系统(java+SSM+Maven+Mysql+Jsp)
  13. ios逆向笔记--越狱IOS平台简介
  14. amazon账号关联|我做了这些不在关联了
  15. 龙腾世纪:起源–最后的古代墓碑和剑圣盔甲
  16. IT项目管理 第四章 习题
  17. HDU 5473(There was a kingdom-凸包+dp)
  18. windows10批量修改文件后缀名
  19. 更新丨织信Informat V1.12:审批流通知支持移动端打开链接,一键实现快速审批
  20. 用动画和实战打开 React Hooks(一):useState 和 useEffect

热门文章

  1. 学会这二十个正则表达式,能让你少些1000行代码!
  2. Python中集合(set)的操作及一些比较常见的用法
  3. javascript权威指南——笔记(第十章:正则)
  4. 由浅入深CIL系列:5.抛砖引玉:判断string是否为空的四种方法的CIL代码看看效率如何?...
  5. 静态和动态include
  6. ms sql 触发器( 转)
  7. mysql修改_mysql修改表操作
  8. 数据不平衡处理_如何处理多类不平衡数据说不可以
  9. python中knn_如何在python中从头开始构建knn
  10. leetcode658. 找到 K 个最接近的元素(二分法)