我有一个文本文件,并且我设置了一个条件,我需要每隔一行提取一段文本,但文本块可以是任意数量的行(FASTA 文件,适用于任何生物信息学人员)。它基本上是这样设置的:
> header, info, info
TEXT-------------------------------------------------------
----------------------------------------------------
>header, info...
TEXT-----------------------------------------------------
……等等。
我正在尝试提取“TEXT”部分。这是我设置的代码:
for line in ffile:
if line.startswith('>'):
# do stuff to header line
try:
sequence = ""
seqcheck = ffile.next() # line after the header will always be the beginning of TEXT
while not seqcheck.startswith('>'):
sequence += seqcheck
seqcheck = ffile.next()
except: # iteration error check
break
这不起作用,因为每次我调用 next() 时,它都会继续 for 循环,这导致我跳过了很多行并丢失了很多数据。如何在不向前移动迭代器的情况下“窥视”下一行?