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

파이썬으로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,
샤하르

관련 정보