有没有办法在python中同时读取两个文件? (使用相同的循环?)

时间:2013-06-05 14:57:55

标签: python

我正在尝试同时读取2个文件,但是我得到了“解压错误的值太多”。这就是我所拥有的:

for each_f, each_g in f, g :
    line_f = each_f.split()
    line_g = each_g.split()

我对python有点新,但我以为我能够做到这一点。如果这是不可能的,是否有一个等效的方法? (我正在阅读的两个文件非常大)

3 个答案:

答案 0 :(得分:8)

import itertools

# ...

for each_f, each_g in itertools.izip(f, g):
    # ...

答案 1 :(得分:1)

不使用itertools

while True:
    try:
        f_line = next(f)
        g_line = next(f)
    except StopIteration:
        break

一旦两个文件中较短的文件耗尽,这就会突然出现循环,因为izip也会这样做。

但实际上,itertools是最好的解决方案。

答案 2 :(得分:0)

您可以使用上下文管理器,即with语句同时读取两个文件:

with open('file1', 'r') as a, open('file2', 'r') as b:  
    do_something_with_a_and_b