Начну с того, что покажу код, который у меня есть:
def err(em):
print(em)
exit
def rF(f):
s = ""
try:
fh = open(f, 'r')
except IOError:
e = "Could not open the file: " + f
err(e)
try:
with fh as ff:
next(ff)
for l in ff:
if ">" in l:
next(ff)
else:
s += l.replace('\n','').replace('\t','').replace('\r','')
except:
e = "Unknown Exception"
err(e)
fh.close()
return s
По какой-то причине оболочка python (я использую 3.2.2) зависает всякий раз, когда я пытаюсь прочитать файл, набрав:
rF("mycobacterium_bovis.fasta")
Условия в функции rF должны предотвращать чтение каждой строки, которая начинается с токена «>». Эти строки не являются кодом ДНК / РНК (это то, что я пытаюсь прочитать из этих файлов) и должны игнорироваться .
Я надеюсь, что кто-нибудь может помочь мне с этим, я не вижу своей ошибки.
Как обычно, ОГРОМНОЕ спасибо заранее!
EDIT:
* Проблема сохраняется! *
Это код, который я сейчас использую, я удалил обработку ошибок, которая в любом случае была причудливым дополнением, и все равно оболочка зависает при попытке прочитать файл. Это мой код сейчас:
def rF(f):
s = ""
try:
fh = open(f, 'r')
except IOError:
print("Err")
try:
with fh as ff:
next(ff)
for l in ff:
if ">" in l:
next(ff)
else:
s += l.replace('\n','').replace('\t','').replace('\r','')
except:
print("Err")
fh.close()
return s