Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2014 15:13:34

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Чтение растущего файла

Программа сбора данных пишет в текстовый файл. Его надо читать на лету. Когда появится символ конца строки, то обработать строку и снова ждать окончания следующей строки. Как в Python 2.7 обеспечить чтение растущего файла? Используются только символы ASCII. Система Windows, желательно и Linux.

Отредактировано alien308 (Апрель 30, 2014 15:15:04)

Офлайн

#2 Апрель 30, 2014 15:41:18

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Чтение растущего файла

Найдено на просторах интернета:

def tail_gen(file_path):
    f = open(file_path)
    #f.seek(0, 2) # go to end
    for line in f: yield line
    while 1:
        where = f.tell()
        line = f.readline()
        if line:
            yield line
        else:
            time.sleep(.1)
            f.seek(where)

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

for line in tail_gen(file_path):
        # do something



Офлайн

#3 Апрель 30, 2014 15:46:39

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Чтение растущего файла

Спасибо, попробую.
P. S. Попробовал, работает.

Отредактировано alien308 (Апрель 30, 2014 19:15:07)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version