чтение лог файлов в Python и вывод конкретного текста - PullRequest
1 голос
/ 26 сентября 2011

У меня есть фрагмент кода, который читает последнюю строку файла журнала во время записи журнала. Я хочу напечатать ошибки, которые происходят в журналах, в основном начать печать, когда line.startswith('Error') и закончить печать, когда line.startwith('End of Error'). Мой код ниже, кто-нибудь может мне помочь с этим, пожалуйста?

log = 'C:\mylog.log'
file = open(log, 'r')
res = os.stat(log)
size = res[6]
file.seek(size)

while 1:
    where = file.tell()
    line = file.readline()
    if not line:
        time.sleep(1)
        file.seek(where)
    else:
        if line.startswith('Error'):
        #print lines until you come to 'End of Error'

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

Инициализируйте флаг перед циклом:

in_error = False

Затем включите и выключите его при необходимости:

if line.startswith('Error'):
    in_error = True
elif line.startswith('End of Error'):
    print(line)
    in_error = False
if in_error:
    print(line)
0 голосов
/ 26 сентября 2011

Может быть проще использовать модуль subprocess, чтобы просто запустить tail -F (заглавная F, доступно на платформах GNU) и обработать вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...