sakutylev
@sakutylev
junior python developer

Как читать изменяющийся файл в python?

Есть лог файл в котором постоянно появляются новые строки.
Задача постоянно читать этот файл если информация появляется то необходимо ее парсить и отправлять дальше.
На ум приходит только tell(), seek() и time.sleep(). Есть какие-то наиболее адекватные варианты для этого?
  • Вопрос задан
  • 1103 просмотра
Решения вопроса 1
sim3x
@sim3x
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dixoNich
frontend developer
1) Вместо файла использовать базу, на которую можно повесить какой-нибудь каллбэк на изменения.
2) Либо https://github.com/seb-m/pyinotify
Ответ написан
sakutylev
@sakutylev Автор вопроса
junior python developer
Спасибо, я как раз что-то похожее набросал)
import time


def read_realtime(log):
    log.seek(0, 2)
    while True:
        row = log.readline()
        if not row:
            time.sleep(0.1)
            continue
        yield row

log = open("IN1511.log", "r")
log_rows = read_realtime(log)
for row in log_rows:
    print(row)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы