考虑以下两个文件:
FILE1.TXT:
file1line1
file1line2
file1line3
FILE2.TXT
file2line1
file2line2
file2line2
我想将file1中的每一行与file2中的相应行组合。
如何在python中完成。
您可以假设两个文件中的行数相等。
答案 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])