我正在設計一個需要在早期階段輸入.fasta文件的代碼。現在,我使用這個功能驗證輸入:如何檢查給定文件是否爲FASTA?
def file_validation(fasta):
while True:
try:
file_name= str(raw_input(fasta))
except IOError:
print("Please give the name of the fasta file that exists in the folder!")
continue
if not(file_name.endswith(".fasta")):
print("Please give the name of the file with the .fasta extension!")
else:
break
return file_name
現在,雖然這一功能正常工作,還有一個用戶可以,雖然有潛在的可能輸入一個文件中的一些閃失中的意義以.fasta結尾的文件名可能包含一些非.fasta內容。我能做些什麼來防止這種情況,並讓用戶知道他/她的.fasta文件已損壞?
寫FASTA解析器或找到一個現有的聯機。 – Kevin
我知道*沒有*關於fasta我自己。但是,在https://stackoverflow.com/a/7655072/131187有一個可能對您有用的答案。我會說,試着解析幾百個字符,假設有意義。如果解析成功,則接受該文件。 –
@Kevin我嘗試使用Biopython SeqIO'SeqIO.parse(file_name,'fasta'))'作爲條件樹的一部分,以查看是否可以解析。可悲的是,它不會在用戶警告該文件不是有效的.fasta文件時發揮作用。這是你的意思嗎? –