我有一个文本文件,设置了一个条件,需要每隔一行提取一块文本,但是这块文本可以是任意数量的行(对于任何生物信息学人员来说,都是FASTA文件)。它基本上是这样设置的:
> header, info, info
TEXT-------------------------------------------------------
----------------------------------------------------
>header, info...
TEXT-----------------------------------------------------
我正在尝试提取“TEXT”部分。以下是我设置的代码: ```html
...等等。
我正在尝试提取“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循环,导致我跳过了很多行并且丢失了很多数据。我该如何只是“窥视”下一行,而不移动迭代器向前?
if line.startswith(">"): [执行标题相关操作] else: [执行文本相关操作]
- tobias_k