python 提取某txt文件某字段不重复数据 并返回到新的txt文档中

我有一个txt文件,命名为test.txt,有如下数据,现想把数据中contact_info中等号后的数据提取出来,并每行一个电话号码的形式保存在新的txt文档中去。请大... 我有一个txt文件,命名为test.txt,有如下数据,现想把数据中contact_info中等号后的数据提取出来,并每行一个电话号码的形式保存在新的txt文档中去。请大侠帮忙。谢谢!
record_id=1|contact_info=913533601044|extension_number=|phone_type=移动电话
record_id=12|contact_info=918620190440|extension_number=|phone_type=移动电话
record_id=7|contact_info=918024067278|extension_number=|phone_type=移动电话。
我写的代码如下,但是跑出来新的文档里面没有数据。
def evid(a,b):
import re
in_put=open(a)
out_put=open(b,'w')
line=in_put.readlines()
temp=[]
dic=[]

for i in line:
c= re.search(r'contact_info=(\d+)',i)
if c:
temp.append(c.group(1))
for i in set(temp):
dic.append(i)
out_put.writelines(dic)

in_put.close()
out_put.close()
展开
 我来答
我心我在
2015-06-25 · TA获得超过2157个赞
知道小有建树答主
回答量:784
采纳率:77%
帮助的人:629万
展开全部
def evid(a,b):
    import re
    in_put=open('33.txt')
    out_put=open('22.txt','w')
    line=in_put.readlines()
    temp=[]
    dic=[]
 
    for i in line:
        print i 
        c= re.search(r'contact_info=(\d+)',i)
        if c:
            temp.append(c.group(1))
    for i in set(temp):
        dic.append(i)
        out_put.writelines(dic)
 
    in_put.close()
    out_put.close()
evid('33.txt','22.txt')
tim_spac
推荐于2016-11-21 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2021万
展开全部

for more pythonic:

import re

def contextset(istream, regex):
    return set([
        found.groups()[0]
        for found in filter(None, map(
                lambda ln: re.search(regex, ln),
                istream))
        ])

with open("a.txt", 'rt') as src, open("b.txt", 'wt') as sto:
    sto.write("\n".join(list(
        contextset(src, r'contact_info=(\d+)')
        )))
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式