如何用户输入具有特定扩展名的文件名?
How to user input filename with a specific extension?
我正在尝试使用 python 创建一个程序,用户将输入一个 fasta 文件,该文件稍后可用于 trim 引物。我正在尝试使用 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
的赋值应该有效,我们将用 break
.
跳出 while
循环
我正在尝试使用 python 创建一个程序,用户将输入一个 fasta 文件,该文件稍后可用于 trim 引物。我正在尝试使用 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
的赋值应该有效,我们将用 break
.
while
循环