我现在正试图同时读取 2 个文件,但我得到一个“太多的值无法解压错误”。这是我所拥有的:
for each_f, each_g in f, g :
line_f = each_f.split()
line_g = each_g.split()
我对 python 有点陌生,但我认为我能够做到这一点。如果这是不可能的,是否有等效的方法?(我正在阅读的两个文件非常大)
我现在正试图同时读取 2 个文件,但我得到一个“太多的值无法解压错误”。这是我所拥有的:
for each_f, each_g in f, g :
line_f = each_f.split()
line_g = each_g.split()
我对 python 有点陌生,但我认为我能够做到这一点。如果这是不可能的,是否有等效的方法?(我正在阅读的两个文件非常大)
import itertools
# ...
for each_f, each_g in itertools.izip(f, g):
# ...
不使用itertools
:
while True:
try:
f_line = next(f)
g_line = next(f)
except StopIteration:
break
一旦两个文件中较短的一个被用完,它就会跳出循环,也是izip
如此。
但实际上,itertools
是优越的解决方案。
您可以使用上下文管理器,即 with 语句同时读取两个文件:
with open('file1', 'r') as a, open('file2', 'r') as b:
do_something_with_a_and_b