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

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
alien308
Спасибо, попробую.
P. S. Попробовал, работает.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB