如何用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 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)