连接两个文件中的行

时间:2014-02-17 11:35:57

标签: python

考虑以下两个文件:

FILE1.TXT:

    file1line1
    file1line2
    file1line3

FILE2.TXT

    file2line1
    file2line2
    file2line2

我想将file1中的每一行与file2中的相应行组合。

如何在python中完成。

您可以假设两个文件中的行数相等。

2 个答案:

答案 0 :(得分:8)

使用zip(),您可以轻松完成此操作:

with open('file1.txt') as fh1, open('file2.txt') as fh2:
    for line1, line2 in zip(fh1, fh2):
        # line1 from file1, line2 from file2

如果您使用的是Python 2,则会将所有文件加载到内存中;使用itertools.izip()代替根据需要读取行:

from itertools import izip

with open('file1.txt') as fh1, open('file2.txt') as fh2:
    for line1, line2 in izip(fh1, fh2):
        # line1 from file1, line2 from file2

在Python 3中,zip()表现为itertools.izip()

答案 1 :(得分:2)

这是一个更少“pythonic”的解决方案,对我们中的某些人来说可能更具可读性:

lines1 = open('file1.txt').read().split('\n')
lines2 = open('file2.txt').read().split('\n')
combined_lines = []
for i in range(len(lines1)):
   combined_lines.append(lines1[i] + lines2[i])