在python中使用izip同时读取两个文件中的行

2024-10-03 23:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用“izip”同时从两个文件中读取行,但是出现了如下错误:

>>> f1=open('/home/xug/scratch/test/test_1.fastq','r')
>>> f2=open('/home/xug/scratch/test/test_2.fastq','r')
>>> from itertools import izip
>>> for i,line1,line2 in izip(f1,f2):
...     if i%4==3:
...        print line1,line2
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 2 values to unpack

我不知道为什么…什么是“需要超过2个值”? 泰铢


Tags: 文件infromtesthome错误openfastq
1条回答
网友
1楼 · 发布于 2024-10-03 23:20:28

izip()只需将两个iterable压缩为成对。它并没有像你所期望的那样引入一个额外的计数器。尝试使用enumerate()

for i, (line1, line2) in enumerate(izip(f1, f2)):
    ...

去拿那个柜台。在

尝试将iterable的第一项分配给i, line1, line2时会产生错误消息。因为第一项是一对字符串,比如s1和{},这个赋值本质上等同于

^{pr2}$

显然需要两个以上的值才能解包。(准确地说,这需要三个。)

相关问题 更多 >