約1億行のファイルがあり、タブ区切りファイルに保存されている代替テキストにテキストを置き換えたいと考えています。私が持っているコードは機能しますが、最初の70K行を処理するのに約1時間かかります。Pythonスキルを段階的に向上させようとすると、これを行うためのより速い方法があるかどうか疑問に思います。ありがとう!入力ファイルは次のようになります。
CHROMOSOME_IVncRNA遺伝子57230855723105。-。ID = Gene:WBGene00045518 CHROMOSOME_IV ncRNA ncRNA57230855723105。-。Parent = Gene:WBGene00045518
置換値を持つファイルは次のようになります。
WBGene00045518 21ur-5153
これが私のコードです:
infile1 = open('f1.txt', 'r')
infile2 = open('f2.txt', 'r')
outfile = open('out.txt', 'w')
import re
from datetime import datetime
startTime = datetime.now()
udict = {}
for line in infile1:
line = line.strip()
linelist = line.split('\t')
udict1 = {linelist[0]:linelist[1]}
udict.update(udict1)
mult10K = []
for x in range(100):
mult10K.append(x * 10000)
linecounter = 0
for line in infile2:
for key, value in udict.items():
matches = line.count(key)
if matches > 0:
print key, value
line = line.replace(key, value)
outfile.write(line + '\n')
else:
outfile.write(line + '\n')
linecounter += 1
if linecounter in mult10K:
print linecounter
print (datetime.now()-startTime)
infile1.close()
infile2.close()
outfile.close()