Python コードを使用してフォルダー内のすべてのファイルを処理する方法

Python コードを使用してフォルダー内のすべてのファイルを処理する方法

Python で次のコードがあります:

#/usr/bin/python

from Bio import SeqIO

count = SeqIO.convert(“genome1.gbk”, “genbank”, “genome1.fasta”, “fasta”)

print("Converted %i records" % count)

このコードは、genbank ファイル「genome1.gbk」を fasta ファイル「genome1.fasta」に変換します。しかし、このコードを使用して、現在のフォルダー内のすべてのファイルを変換したいと考えています。現在のフォルダー内のすべてのファイルは genbank ファイルであり、このコードを使用して fasta ファイルに変換したいと考えています。ワイルドカードを使用することを考えていましたが、このコードをどのように変更すればよいか正確にはわかりません。助けていただければ幸いです。

答え1

Pythonのos.scandir特徴:

#/usr/bin/python

from Bio import SeqIO
from os import scandir

with scandir() as it:
    for entry in it:
        if entry.name.endswith('.gbk') and entry.is_file():
            count = SeqIO.convert(entry.name, 'genbank', '{}.fasta'.format(entry.name[:-4]), 'fasta')
            print("Converted %i records" % count)

答え2

次のコードに従ってください:

import os 
from Bio import SeqIO

for filename in os.listdir('.'):
  if filename.endswith(".gbk"):
    count = SeqIO.convert(filename, “genbank”, "{}.fasta".format(entry.name[:-4]), “fasta”)
    print("Converted %i records" % count)

BR、
シャハル

関連情報