如何同时迭代两个文件中的行?

chi*_*der 20 python iterator

我有两个文件,我想在它们两个上执行一些按行操作.(换句话说,每个文件的第一行与第二行相对应,等等.)现在,我可以想到一些稍微麻烦的方法来同时迭代这两个文件; 然而,这是Python,所以我想有一些句法简写.

换句话说,是否有一些简单的方法来适应

for line in file:
Run Code Online (Sandbox Code Playgroud)

这样它可以同时从两个文件中提取数据?

Dan*_*man 37

使用itertools.izip加入了两个迭代器.

from itertools import izip
for line_from_file_1, line_from_file_2 in izip(open(file_1), open(file_2)):
Run Code Online (Sandbox Code Playgroud)

如果文件长度不等,请使用izip_longest.

  • 在Python 3中,您需要使用`zip`. (5认同)
  • 在 Python 3 中,如果您想使用直到最长文件末尾的行,请使用“itertools.zip_longest”。 (2认同)

Ale*_*sky 9

你可以试试

for line1, line2 in zip(file1, file2):
    #do stuff
Run Code Online (Sandbox Code Playgroud)

但是要小心,当较短的文件结束时,此循环将退出.

使用Python 2时,itertools.izip对于这类事情更好,因为它不会创建list.