6

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

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

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

4

3 回答 3

8
import itertools

# ...

for each_f, each_g in itertools.izip(f, g):
    # ...
于 2013-06-05T14:59:40.257 回答
1

不使用itertools

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

一旦两个文件中较短的一个被用完,它就会跳出循环,也是izip如此。

但实际上,itertools是优越的解决方案。

于 2013-06-05T15:21:02.177 回答
1

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

with open('file1', 'r') as a, open('file2', 'r') as b:  
    do_something_with_a_and_b
于 2013-06-05T15:00:37.897 回答