python自动处理多个txt文件_怎么用python去实现几个文件中内容的并行处理

如果我在同一个路径下有三个文件a.txt,b.txt,c.txt,三个文件中的内容分别是:

a.txt: b.txt: c.txt:

aaa 2 bbb 5 aaa 8 #中间的空格代表一个tab键

bbb 3 cca 6 bba 9

cca 4 ccc 2 bbb 5

ccc 7

经过处理后我得到一个文件d.txt

aaa 2 0 8

bba 0 0 9

bbb 3 5 5

cca 4 6 0

ccc 0 2 7

之前我有写一个代码,处理成功了,,可是我是先把每个文件中的前面的第一列统计出来,然后再一行行地去写入后面的数字的,,运行起来太慢了,,加上我们要统计的数据太大,现在运行了好几天都没有出结果。现在老师让我两个文件两个文件的进行比较,因为每个文件中第一列都是排好序的,所以只要一行一行地进行比较。。我弄了有段时间了,还是没搞好,,,不知道哪位哥们能帮帮忙,,给我指点一下。我之前写得代码如下:

import os

import time

start=time.clock()

currenPath=os.getcwd()

fileList=os.listdir(currenPath)

#print(fileList)

outputfile=open('d.txt','a')

outputfile.write('tuple_name'+'\t')

input_file_list_2=[]

for item in fileList:

itemLength=len(item)

if item[itemLength-10:itemLength]=='sorted.txt':#这是我要处理的文件。是以sorted.txt为结尾的

filelist2=open(item,'r')

input_file_list_1=[]

for line in filelist2:

temp=line[0:-1].split('\t')

tuple_name_new_1=temp[0]

tuple_count=temp[-1]

input_file_list_1.append(tuple_name_new_1)

for tuple_name_new_2 in input_file_list_1:

if tuple_name_new_2 not in input_file_list_2:

input_file_list_2.append(tuple_name_new_2)

else:

continue

outputfile.write(item[0:-4]+'\t')

inputfile_new= input_file_list_2

inputfile_new.sort()

print(inputfile_new)

#print(len(inputfile_new))

outputfile.write('\n')

for tuple_name in inputfile_new:

outputfile.write(tuple_name)

#print(tuple_name)

for item in fileList:

itemLength=len(item)

if item[itemLength-10:itemLength]=='sorted.txt':

#print(item)

filelist2=open(item,'r')

input_file_list=[]

input_file_dic={}

for line in filelist2:

temp=line[0:-1].split('\t')

tuple_name_new_2=temp[0]

tuple_count=temp[-1]

input_file_list.append(tuple_name_new_2)

input_file_dic[tuple_name_new_2]=tuple_count

#print(input_file_list)

#print(input_file_dic)

if tuple_name in input_file_dic:

outputfile.write('\t'+input_file_dic[tuple_name]+'\t')

else:

outputfile.write('\t'+'0'+'\t')

outputfile.write('\n')

end=time.clock()

print(end-start)

filelist2.close()

outputfile.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值