![如何用python代码处理文件夹中的所有文件](https://linux22.com/image/164656/%E5%A6%82%E4%BD%95%E7%94%A8python%E4%BB%A3%E7%A0%81%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6.png)
我在 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,
沙哈尔