python用for读取两个不同的文件

时间:2017-08-27 16:46:05

标签: python for-loop file-io

配合。

我这几天开始使用python,而我曾经尝试使用java,虽然更复杂。

当我尝试阅读两个不同的文件时:

a = open("file1.txt")
b = open("file2.txt")
for abc in a
    for def in b
        print (abc,def)

然而,我得到的只是第一行文件a和每行文件b。它与我的期望不同。

原因是什么,无论如何要解决它? 欢呼声。

2 个答案:

答案 0 :(得分:0)

您可以使用zip()

for (line_a, line_b) in zip(a, b):
   ...

这将取a的第一行和b的第一行,然后是两个文件的第二行等。当两个文件中较短的一个结束时,它将停止。

答案 1 :(得分:0)

你的内部循环读取b中的所有行,意味着文件已耗尽(所有行都已被读取)。要再次阅读这些行,您需要使用b.seek(0)移回文件的开头。

或者,在循环播放之前,您可以将b转换为包含b = list(b)的列表。该列表可以循环多次,而不必回到起点。