我在一个文本文件test.fasta
的行中循环,当我到达format1
的行时,我想创建一个newFile1
,跳过一行,然后将下面的f
行写入newFile1
,直到到达另一行format1
,此时我想关闭newFile1
,创建newfile2
等等
到目前为止我所拥有的:
import re
with open('test.fasta', 'r') as seqs:
seqFile = (open('throwaway.txt', 'a+'))
for line in seqs:
if re.search('^>[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]', line):
seqFile.close()
seqFile = open('%s.fasta' % line, 'a+')
seqs.next()
else:
seqFile.write('%s' % line)
seqFile.close()
这段代码运行正常,输出是我所期望的。问题是在启动循环之前,我需要创建throwaway.txt
文件,这样循环的第一次迭代就不会因为seqFile
不存在而失败。如果我不包括它所在的seqFile.close()
,那么我只留下一堆打开的文件
我可以添加一个if
语句,它只处理没有打开文件的第一次迭代,但是我想知道是否有更优雅的方法来完成它
对我来说,避免依赖伪文件存在的最直接的方法是在尝试调用
close
时通过循环第一次捕获该异常:相关问题 更多 >
编程相关推荐