我正在尝试同时读取2个文件,但是我得到了“解压错误的值太多”。这就是我所拥有的:
for each_f, each_g in f, g :
line_f = each_f.split()
line_g = each_g.split()
我对python有点新,但我以为我能够做到这一点。如果这是不可能的,是否有一个等效的方法? (我正在阅读的两个文件非常大)
答案 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