Ich arbeite an einem Programm und eine der Funktionen besteht darin, eine Fasta-Datei nach ID zu sortieren. Die Funktion wird wie folgt beschrieben:Warum gibt Python einen Fehler, der besagt, dass es sich um einen Ordner handelt, wenn es sich um eine Datei handelt?
def sorting_files(output,my_fasta_file, sample_name):
#to sort the fasta file that contain all the genes
my_file=open(my_fasta_file)
input_handle=(my_file,'rU')
fasta_file=SeqIO.parse(input_handle, 'fasta')
sorted_fasta_file=(record for record in sorted(fasta_file, key=lambda x : x.id))
sorted_file=SeqIO.write(sorted_fasta_file, output + 'sorted_' + sample_name +'.fa', 'fasta')
return sorted_file
Dann nenne ich die Funktion von der Haupt als:
#to sort the fasta file
def main():
folders=sorted(glob.glob(opts.input_file +'/*_velvet'))
for folder in folders:
my_fasta_file=glob.glob(folder +'/H*.fa')
print my_fasta_file
#sys.exit()
sorted_file=sorting_files(my_fasta_file,output,sample_name)
print 'The fasta file has been sorted, hoooray!'
main()
When it prints my_fasta_file it prints:
['/home/path_to_file/velvet_file/sample_name_velvet/sample_name.fa']
Aber ich erhalte die folgende Fehlermeldung:
File "model.py", line 82, in sorting_files
my_file=open(my_fasta_file)
IOError: [Errno 21] Is a directory: '/home/path_to_files/velvet_file/sample-name_velvet/'
Ich verstehe nicht, aus, wo der Fehler ist. Jede Hilfe wird sehr geschätzt. Danke,
Danke, folgte Ihrem Vorschlag und es funktioniert perfekt. Ich lerne Python und dachte, dass die Reihenfolge nicht wichtig ist. Immer lernen. – Ana
Die Reihenfolge ist nicht wichtig, wenn Sie nur Schlüsselwortargumente verwenden. Für den Rest ist die Reihenfolge wichtig. – rodgdor