我正在尝试使用python创建一个程序,用户将输入一个fasta文件,该文件以后可用于修剪引物。我正在尝试使用BioPython来执行此操作,但是我一直遇到错误。我尝试过的代码如下:
from Bio import SeqIO
in_file = input("Enter filename with extension:")
def is_fasta(in_file):
with open(in_file) as handle:
fasta = SeqIO.parse(handle, "fasta")
return any(fasta)
is_fasta(in_file)
我希望能够请求一个fasta文件,并且如果输入的文件不是fasta,请显示错误消息并提示您重试。
您是否熟悉Python的try
声明?您可以尝试打开并读取文件,如果该文件不起作用(即引发异常),请再次提示用户。
我不知道Bio.SeqIO
,甚至Bio
模块也不知道。我猜错误是伴随您致电给您的SeqIO.parse
?您可以尝试如下操作:
from Bio import SeqIO
while True:
in_file = input("Enter filename with extension:")
try:
with open(in_file) as handle:
fasta = SeqIO.parse(handle, "fasta")
except:
print("Could not read file. Please ensure it is a 'fasta' file and try again.")
continue
break
毫无例外,的分配fasta
应该已经奏效,我们将通过跳出while
循环break
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句