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)

おすすめ記事