私は非常にPythonに新しく、特定のファイル(input1.txt)に対して実行するPythonスクリプトを持っていて、出力(output1.fasta)を生成しましたが、例えば複数のファイル、このスクリプトを実行する:input2.txt、input3.txt ...と、それぞれの出力を生成:output2.fastaを、複数の入力ファイルに対して実行するPythonスクリプトを変更します
from Bio import SeqIO
fasta_file = "sequences.txt"
wanted_file = "input1.txt"
result_file = "output1.fasta"
wanted = set()
with open(wanted_file) as f:
for line in f:
line = line.strip()
if line != "":
wanted.add(line)
fasta_sequences = SeqIO.parse(open(fasta_file),'fasta')
with open(result_file, "w") as f:
for seq in fasta_sequences:
if seq.id in wanted:
SeqIO.write([seq], f, "fasta")
output3.fasta私はglob関数を追加しようとしましたが、私は出力ファイル名をどう扱うべきかわかりません。
from Bio import SeqIO
import glob
fasta_file = "sequences.txt"
for filename in glob.glob('*.txt'):
wanted = set()
with open(filename) as f:
for line in f:
line = line.strip()
if line != "":
wanted.add(line)
fasta_sequences = SeqIO.parse(open(fasta_file),'fasta')
with open(result_file, "w") as f:
for seq in fasta_sequences:
if seq.id in wanted:
SeqIO.write([seq], f, "fasta")
エラーメッセージは次のとおりです。NameError:名「result_file」が*.txt
がsequences.txt
ファイルが含まれているため
正確には動作しません。 globで試した後にコードを表示できますか? – Verv
globで動作しないのは何ですか?私たちが助けることができるように具体的にする。 – kabanus
申し訳ありませんが、エラーメッセージなどで質問を更新しました。 – Paul