Вы знакомы с оператором 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
.