如何用python读取一个已经乱了的电话本txt文件
求助怎么用python读取一个已经乱了的电话本txt文件
求助怎么用python读取一个已经乱了的电话本txt文件 虽然乱了,但还是有规律的,读出来以后能否写入一个xls文件,(实在有困难.txt文本也可,前提是 把姓名和号码分为两列,,这样我就可以自己手动拷贝到xls文件了,哈哈)电话字段 下填电话 姓名字段下填姓名,读取的时候应该设置循环吧?怎么实现知道循环的总数呢?求帮助,本人新学python,,,谢谢,,,,如下
UID:36
TEL:13687371414
N:;李文
FN:李文
END:VCARD 36 BEGIN:VCARD
VERSION:3.0
REV:2011-04-26T16:27:04Z
UID:29
TEL:15874048855
N:;zy;
FN:zy
END:VCARD 29 BEGIN:VCARD
VERSION:3.0
REV:2011-04-26T16:27:01Z
UID:21
TEL:15580047788
N:;黄;
FN:黄
END:VCARD 21 BEGIN:VCARD
VERSION:3.0
REV:2011-07-04T07:44:27Z
UID:14
TEL;TYPE=CELL,VOICE:13647484458
FN:杨;
END:VCARD 14 Sj
------解决方案--------------------
求助怎么用python读取一个已经乱了的电话本txt文件 虽然乱了,但还是有规律的,读出来以后能否写入一个xls文件,(实在有困难.txt文本也可,前提是 把姓名和号码分为两列,,这样我就可以自己手动拷贝到xls文件了,哈哈)电话字段 下填电话 姓名字段下填姓名,读取的时候应该设置循环吧?怎么实现知道循环的总数呢?求帮助,本人新学python,,,谢谢,,,,如下
UID:36
TEL:13687371414
N:;李文
FN:李文
END:VCARD 36 BEGIN:VCARD
VERSION:3.0
REV:2011-04-26T16:27:04Z
UID:29
TEL:15874048855
N:;zy;
FN:zy
END:VCARD 29 BEGIN:VCARD
VERSION:3.0
REV:2011-04-26T16:27:01Z
UID:21
TEL:15580047788
N:;黄;
FN:黄
END:VCARD 21 BEGIN:VCARD
VERSION:3.0
REV:2011-07-04T07:44:27Z
UID:14
TEL;TYPE=CELL,VOICE:13647484458
FN:杨;
END:VCARD 14 Sj
------解决方案--------------------
- Python code
#! /usr/bin/env python #coding=utf-8 import re def readandshowfile(filename): try: fh=open(filename) fc=fh.read() fh.close() r=re.compile(r'(UID:\d*[\s]*TEL:\d*[\s]*N:.*)') datas=r.findall(fc) for data in datas: temp=data.split('\n') for i in temp: print i.split(':')[1].replace(';', '') #print data except Exception, ex: print ex if __name__=='__main__': filename='c:/temp/temp.txt' readandshowfile(filename)
------解决方案--------------------
解析字符串,这方法笨,但是实在。
- Python code
infile = open(r'path','r') text=infile.read()#读出的内容作为字符串 infile.close() contentlist = text.split('UID:')# 按“UID:”切割成字符串序列 for content in contentlist: n = content[content.find('N:')+2:content.find('FN:')-2] fn = content[content.find('FN:')+3:content.find('END:')-2] tel = content[content.find('TEL:')+4:content.find('N:')-2] print '%s%s,%s\n'%(fn,n,tel)