python如何合并多个txt文件删除所有重复行并生成新文件

文件夹内有许多个这样的txt文件全都是类似的卡号信息(中间不是空格是tab),要怎么把所有人卡号信息筛选出来且不能重复(单个文件有好几千行!),卡号都是10位数,有部分不... 文件夹内有许多个这样的txt文件全都是类似的卡号信息 ( 中间不是空格是tab),要怎么把所有人卡号信息筛选出来且不能重复 (单个文件有好几千行!),卡号都是10位数,有部分不是10位的前面还要帮忙加上0,我用python怎么搞? 展开
 我来答
匿名用户
2017-07-03
展开全部
  1. 把所有的这些txt文件放到一个文件夹

  2. 打开cmd, 进入到这个放了多个txt的文件夹, 运行命令copy *.txt all.txt

  3. 在该文件夹下创建一个python脚本 1.py, 将下列代码复制进去

# coding=utf-8
# using python27
file_path = 'all.txt'

with open(file_path, 'r') as f:
    card_informations = map(lambda x: x.strip().split('\t'), f.readlines())

for i in range(len(card_informations)):
    number = card_informations[i][0]
    if len(number)<10:
        card_informations[i][0] += '0'  # 给小于十位的加上0

# 剔除重复数据
result = []
for i in card_informatios:
    if i not in result:
        result.append(i)

# 写入新文件
with open('result.txt', 'w+') as f:
    for i in range(len(result)):
        f.write(result[i][0]+'\t'+result[i][1]+'\n)

4. 运行该脚本, 然后该文件夹下就会多出一个result.txt的文件, 里面放的就是去重完之后的所有卡信息.

追问
我把改成   for i in range(len(result)/2+1):  解决了! 谢谢
匿名用户
2017-07-03
展开全部
"""将文件内容读取到set中"""
def proc(fp,tset):
    for line in fp:
        for i in line.split():
            tset.add(i)
    return tset



if __name__=="__main__":
    
    """读入文件列表"""
    flists=["c:/t1.txt","c:/t2.txt"]
    nums=set()
    for fn in flists:
        fp=open(fn,"r")
        nums=proc(fp,nums)
        fp.close()
    
    """输出文件列表"""
    fp=open("c:/t3.txt","w")
    for num in nums:
        fp.write("{:0>10}\t".format(num))
    fp.close()
更多追问追答
追问

flists=[r'C:\Users\CC\Desktop\card\all.txt'] 我路径前面+r的  就成这样了

追答
这样的输出符合程序的原始预期。不知有什么疑问?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxszx4
2017-07-03 · TA获得超过511个赞
知道小有建树答主
回答量:732
采纳率:42%
帮助的人:213万
展开全部

光要卡号的话简单。假设源文件名为1.txt,卡号输出到2.txt

with open('1.txt','r') as f:
    a=f.readlines()
b=[]
for i in a :
    if len(i.split('\t')[0])==10:
        b.append(i.split('\t')[0])
    else:
        b.append("0"+i.split('\t')[0])
c=set(b)
with open('1.txt','w') as f:
    f.writelines(c)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式