我正在循環訪問文本文件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