Построчная обработка файловPython

Программы на Python
Anonymous
Построчная обработка файлов

Сообщение Anonymous »

Я обрабатываю большой файл BLAST вместе с большим файлом FASTA, и мне нужно загрузить несколько строк FASTA для одного блока BLAST (скажем, это одна строка).

Я ожидаю, что во втором цикле (строке) BLAST он продолжится на следующей строке от последней обработанной строки FASTA, но загружаются все те же строки FASTA.
Почему? И как мне загрузить следующую строку? Действительно ли необходимо добавлять индексацию?

Код: Выделить всё

with open(fastaname,'r') as fastafile:
with open(blastfilename,'r') as blastfile:
for line in blastfile:
while True:
fastaline = fastafile.readline()[:-1]
if fastaline[0]=='>':
break
fastaseq += fastaline
somefunction(line,fastaseq)
FASTA имеет типичный формат:

Код: Выделить всё

>name_of_seqence\n
ACGATCATCGTAGCTGCATGACTGCA\n
GATCGATCTGATCGATGCAGTCAGTA\n
>name_of_seqence\n
GCACGCGACCACGATCATTGACTGCA\n
CAAAAGATCTGATCGATGCAGTCAGT\n
CAGTCGATGCTAGTCGATGCTCGATA\n
etc.
Мне нужна каждая последовательность для каждой строки следующей последовательности BLAST.

Подробнее здесь: https://stackoverflow.com/questions/198 ... ne-by-line

Вернуться в «Python»