Привет,
Я попал в следующую проблему:
Имеется файл следующей структуры:
'>some cookies
chocolatejelly
peanutbuttermacadamia
doublecoconutapple
'>some icecream
cherryvanillaamaretto
peanuthaselnuttiramisu
bananacoffee
'>some other stuff
letsseewhatfancythings
wegotinhere
Цель: поместить все записи после каждой строки, содержащей '>', в список как одну строку
Код:
def parseSequenceIntoDictionary(filename):
lis=[]
seq=''
with open(filename, 'r') as fp:
for line in fp:
if('>' not in line):
seq+=line.rstrip()
elif('>' in line):
lis.append(seq)
seq=''
lis.remove('')
return lis
Так что эта функция проходит через каждую строку файла
если нет '>', он объединяет все следующие строки и удаляет
затем',
если встречается '>', он автоматически добавляет сцепленную строку в список и 'очищает' строку 'seq' для объединения следующей последовательности
Проблема:
Чтобы взять пример входного файла, он только помещает материал из «некоторых куки» и «некоторого мороженого» в список, но не из «какого-то другого материала». Итак, мы получаем в результате:
[chocolatejelly
peanutbuttermacadamia
doublecoconutapple, cherryvanillaamaretto
peanuthaselnuttiramisu
bananacoffee] but not
[chocolatejelly
peanutbuttermacadamia
doublecoconutapple, cherryvanillaamaretto
peanuthaselnuttiramisu
bananacoffee, letsseewhatfancythings
wegotinhere]
Что здесь за неправильная мысль? В этой итерации есть логическая ошибка, о которой я, возможно, и не позаботился, но я не знаю, где.
Заранее спасибо за любые подсказки!