Python, если строка = строка, вывести следующую строку из файла - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь написать что-то, чтобы напечатать определенные строки из файла.Допустим, файл выглядит следующим образом:

name = 1

name = a

name = 2

name = b

name = 3

extra = 1

name = c

name = 4

extra = 1

name = d

Обычно я мог бы это сделать, если строка начинается с (name) и распечатывать их все, но, допустим, мне нужна только половина из них, и я еще не знаю, какие значения мне нужны.Так что я мог только напечатать строки, начинающиеся с «name», которые идут после строк, начинающихся с «extra», чтобы печатать только те строки, которые я хочу.Но я не могу понять, как напечатать что-то вроде строки + 1. Как мне напечатать следующую строку, основываясь на том, что говорит предыдущая строка?Есть лучший способ сделать это?Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

В конце цикла обработки ввода сохраните копию текущей строки ввода и назовите ее примерно так: previous_line.Затем на следующей итерации вы получите доступ как к текущей строке ввода, так и к предыдущей строке ввода.

previous_line = ''
for line in f:
    if line.startswith('name') and previous_line.startswith('extra'):
        print line
    # keep a copy of this line for the next loop
    previous_line = line
0 голосов
/ 10 декабря 2018

Вы можете просто использовать логический флаг и печатать, только если флаг установлен.Что-то вроде:

print_next_line = False
for line in f_in:
    if print_next_line:
        print(line)
        print_next_line = False
    else:
        print_next_line = line.startswith()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...