我在 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,
沙哈爾