Получить n строк из текста, используя Python - PullRequest
0 голосов
/ 03 марта 2020

Я работаю с файлом FastQ, который представляет собой текстовый файл с различными элементами в каждых 4 строках. Я пытаюсь найти определенную строку в строке и получить эту строку со следующими тремя строками. Но я не уверен, как это сделать. Пока я могу получить только целевую строку, но не следующие три. Предположим, что у моей целевой строки есть «XXXX» как часть строки, фрагмент моего кода выглядит следующим образом:

with open (x, 'rt') as myfile:   
    for line in myfile:

        if re.findall ('.+XXXX.+', line):
            target.write (line)
            count_target = count_target + 1

        else:
            leftover.write (line)
            count_left = count_left + 1

Как я могу улучшить свой код, чтобы получать четыре последовательные строки каждый раз, когда он обнаруживается » XXXX "? Спасибо.

1 Ответ

1 голос
/ 03 марта 2020

Как только вы нашли свою линию, позвоните next(myfile) 3 раза:

with open (x, 'rt') as myfile:   
    for line in myfile:

        if re.findall ('.+XXXX.+', line):
            target.write (line)
            for i in range(3):
                target.write(next(myfile))

...