Чтение файла построчно, но начинается с некоторой точки - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно построчно читать файл, но начинать печатать его конкурс после матча Давайте предположим, что совпадение должно быть XXX

Итак, если у нас есть файл со следующим

wdwdw
dwdww
XXX
DWDM
111

должно отображаться DWDM и 111

Я попробовал это следующим образом.

file open('buffer.txt', 'r')
for line in file:
    if re.search('XXX'. line):
          print(line)

Но он печатает только одну строку. Как заставить его печатать остальное?

Ответы [ 3 ]

1 голос
/ 05 июня 2019

Он печатает только совпадающую строку, что нормально.Попробуйте что-то вроде этого:

with open('buffer.txt', 'r') as f:
    matched = False 
    for line in f:
        if matched:
            print(line)
        if re.search('XXX', line):
            matched = True

Зачем использовать with, чтобы открыть файл

0 голосов
/ 05 июня 2019
file = open('buffer.txt', 'r')
found = False
for line in file:
    if not found:
        if re.search('XXX'. line):
              found = True
    else:
        print(line)
0 голосов
/ 05 июня 2019

1) Не используйте регулярные выражения для простого поиска.
2) Откройте файл в операторе with.
3) Просто создайте логическую переменную, которая сообщит вам, когда вы увидите нужную строку:

with open('buffer.txt', 'r') as f:
    start_printing = False
    for line in f.readlines():
        if start_printing:
            print(line)
        elif 'XXX' in line:
            start_printing = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...