我有两个txt文件,每个文件有100000行,现在我需要生成一个新文件,它结合了前两个txt文件的内容,第一个文件中的每32行和每64行提取第二个文件,然后写入新文件,依此类推,直到两个文件中的所有行都写入新文件。
我如何在python中完成它,我知道在一个文件中读取所有行并将它们写入另一个文件的方式。
with open(app_path+'/empty.txt','r') as source:
data = [ (random.random(), line) for line in source ]
data.sort()
with open(app_path+'/empty2.txt','w') as target:
for _,line in data:
target.write( line )
但是为了阅读2个文件,提取内容并按顺序写作,我不知道
答案 0 :(得分:1)
根据TessellatingHeckler,您将首先用完文件2。然后,此方法将继续从剩余文件写入,直到完成。
from itertools import islice
with open('target.txt', 'w') as target:
f1, f2 = open('f1.txt'), open('f2.txt')
while True:
ls1 = islice(f1, 32)
if not ls1:
# will not happen in this case
target.write('\n' + f2.read())
break
ls2 = islice(f2, 64)
if not ls2:
target.write('\n' + f1.read())
break
target.write('\n'.join('\n'.join(ls) for ls in [ls1, ls2]))
f1.close()
f2.close()