Ich bin sehr neu in Python, und ich habe ein Python-Skript für eine bestimmte Datei (input1.txt) ausgeführt und eine Ausgabe (output1.fasta) generiert, aber ich möchte dieses Skript für mehrere Dateien, beispielsweise auszuführen: input2.txt, input3.txt ... und erzeugt den jeweiligen Ausgang: output2.fasta, output3.fastaÄndern Python-Skript für mehrere Eingabedateien
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")
ich versuchte, die glob-Funktion hinzuzufügen, aber Ich weiß nicht, wie ich mit dem Namen der Ausgabedatei umgehen soll.
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")
Die Fehlermeldung lautet: Nameerror: name ‚result_file‘ nicht
definiert ist
was genau funktioniert nicht? Können Sie Ihren Code anzeigen, nachdem Sie mit glob versucht haben? – Verv
Was funktioniert nicht mit glob? Sei spezifisch, damit wir helfen können. – kabanus
Sorry, ich habe meine Frage mit der Fehlermeldung etc. aktualisiert. – Paul