python综合专栏
VCF文件格式(即后缀.vcf)是存储通讯录联系人信息的一种纯文本文件格式。这里所指的“联系人信息”,通常包括姓名、地址、电话号码、电子邮件地址、其它联系信息,另外,还支持自定义字段、图像和其它类型的媒体信息。
如果我们将手机中的通讯录联系人信息导出来的话,就是vcf格式的文件。同样,如果我们要将通讯录信息编辑后,导入到我们手机的通讯录中,那么,也必须以vcf格式文件先保存到手机中。
当然,vcf格式文件不仅仅用于存储通讯录联系人信息,还可以用于其它许多领域,例如生物信息上存储DNA信息。处理DNA信息的vcf格式文件,需要用到python的PyVCF库,在pip install PyVCF安装后,使用时导入import vcf,才能使用这个库,方便快捷地处理DNA信息。
不过,今天我们要讲的是存储通讯录信息的vcf文件。这篇文章我们介绍如何使用python读取vcf文件的通讯录信息,然后编辑通讯录信息,之后再将编辑后的通讯录信息保存为vcf格式文件。首先,我们先看看通讯录vcf文件的“长相”,如下图所示,看上去像一张张的名片。
里面每一个vcf文件都保存着几十个联系人的信息。
如果直接双击打开某个文件,会跳出联系人信息窗口,如下所示:
让人非常讨厌的是,这个窗口是不好关闭的,点击“取消”或右上角的叉叉,又会弹出另一个联系人的信息窗口,再点,再出现新的联系人的信息窗口。当一个vcf文件里只保存几个联系人信息的时候,一直点击取消,点完所有联系人后,会自动消失。如果一个vcf文件里存有几十个几百个联系人信息,一直点击,会让人发疯的。有没有办法强制关掉呢?
【第1步】右键单击电脑屏幕最下方的横条,如下图所示,选择“启动任务管理器”。
【第2步】弹窗任务管理器对话框后,找到vcf弹窗的应用程序,即下方的红色方框,就是循环弹出联系人窗口的应用程序。然后,右键单击红色方框,在弹出的菜单中选择“转到进程”。
就会弹出如下的对话框,并突出显示刚才应用程序的进程,即下图左边红色方框。选中它,再点击右下角的“结束进程”,就可以搞定循环弹窗的烦恼!
解决了上面的烦恼,我们来看看如何修改VCF文件中的内容。
修改内容:将vcf文件中的所有手机号前面加上一个字母“A”。例如,手机号19100002222,加上后,是A19100002222。
打开python的IDLE编辑器,输入以下代码:
>>> import re
>>> f = open('e:/3.vcf','r') #打开vcf文件
>>> text = f.read() #读取联系人信息
>>> type(text)
<class 'str'> #返回的是字符串数据
>>> res = re.sub( r'(\d{11})', 'A+'+r'\1', text) #使用正则表达式将原来手机号加上字母后,进行替换。
>>> f.close() #关闭文件对象
>>> with open('e:/new.vcf','w') as f:
f.write(res)
#将修改后的内容,保存为new.vcf文件。
打开new.vcf文件,如下所示,手机号前面已经加上字母A。
除了修改vcf里面的手机号,使用python内置的正则表达式库re,还可以根据需要修改调整其它内容,非常方便,非常高效。尤其是批量、大量处理时,更是省心、省时、省力。
如果想整理出vcf里面的所有信息,输出为excel表格,使用上面的方法也是非常简单。
如果是对每个联系人信息进行个性化修改,可以增加一些代码。
总之,使用python读取vcf信息后,再进行各种整理修改,都是比较简单高效的。
作者 | 小白
编辑 | 白领服务工作室