BioSeqIO无法识别.gbff文件 批量转换报语法错误该如何解决?
问题原因
SeqIO.convert仅支持单输入文件、单输出文件的转换逻辑,不识别通配符*,你传入的*.gbff会被它当成文件名是*.gbff的单个文件处理,自然无法正常运行。- 你遇到的
SyntaxError和.gbff格式本身无关,Biopython完全支持gbff格式的读取(gbff和gbk本质都是genbank格式,仅后缀名不同),该报错大概率是代码复制粘贴时带入了不可见的隐藏排版字符导致的。
可行解决方法
使用glob模块匹配所有.gbff后缀的文件,逐个遍历转换即可,参考代码如下:
from Bio import SeqIO import glob # 匹配当前目录下所有.gbff文件 for gbff_path in glob.glob("*.gbff"): # 生成对应.gbk输出路径 gbk_path = gbff_path.removesuffix(".gbff") + ".gbk" # 执行转换 seq_count = SeqIO.convert(gbff_path, "genbank", gbk_path, "genbank") print(f"{gbff_path}转换完成,共写入{seq_count}条序列")
如果需要同时处理子目录下的所有.gbff文件,把glob匹配行改成如下即可:
for gbff_path in glob.glob("**/*.gbff", recursive=True):
内容的提问来源于stack exchange,提问作者Charis
相关产品推荐
相关产品推荐

