您的位置:首页 > 编程语言 > Python开发

利用python解析手机通讯录

2016-07-25 15:18 519 查看
最新在处理手机通信录的时候,导出的手机通信录的文件VCF文件的内容如下:

BEGIN:VCARD
VERSION:3.0
N:某;某某;;;
FN:某某某
UID:4895408015803136
TEL;TYPE=mobile:134 xxxx xxxx
END:VCARD


就编写了一段python代码进行解析,详细的代码如下,以作为备忘:

def main():
file=open('my.vcf','r',encoding='utf-8')
name=''
phone=''
out =open('my_name.txt','w',encoding='utf-8')
out1 =open('my_noname.txt','w',encoding='utf-8')
for line in file:
line=line.strip('\n')
if line == 'BEGIN:VCARD':
print('Card start')
continue
elif line=='END:VCARD':
print('Card End')
out.write(name+','+phone+'\n')
out1.write(phone+'\n')
continue
else:
contents = line.split(':')
if contents[0] == 'FN':
name = contents[1]
continue
elif 'mobile' in contents[0]:
phone = contents[1].replace(' ','')
phone=phone.replace('-','')
if phone.startswith('+'):
phone=phone[3:14]
continue
file.close()
out.close()
out1.close()

if __name__ == '__main__':
main()

在以上的代码是主要提取了联系人的名称和手机号码,分别写入两个文件中,作为其他的备用。所以关注的内容那就是名片的开始和结束,以及name和手机号码两个字段,如果你还关心其他的字段可以在逻辑控制中加入其他的相关字段的提取。

ps:代码运行的环境

操作系统:windows 10

开发IDE:PyCharm

Python的版本:3.5.1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 数据解析