如何顺序读取两个txt文件并在python中写入一个新文件?

时间:2015-09-23 03:30:31

标签: python

我有两个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个文件,提取内容并按顺序写作,我不知道

1 个答案:

答案 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()