我正在循环访问文本文件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
语句,该语句只处理没有文件打开的第一个迭代,但我想知道是否有更好的方法来完成它。
'A +'如果文件未找到,则创建一个新文件。你在想什么? –
我在想我想创建一堆新文件 - 这是按预期工作的。这不是问题,问题是我想在将它们作为循环的一部分完成后关闭这些文件。 – kevbonham