В основном я искал способ чтения из файла, который постоянно записывается в Python, например файла журнала.
Я нашел это: { ссылка }
И ответ:
import time
def follow(thefile):
thefile.seek(0,2)
while True:
line = thefile.readline()
if not line:
time.sleep(0.1)
continue
yield line
if __name__ == '__main__':
logfile = open("run/foo/access-log","r")
loglines = follow(logfile)
for line in loglines:
print line,
Я начал спрашивать себя, почему это работает. Я имею в виду, хорошо, теоретически, искать до конца, ждать, пока подойдет очередь, прочитать и распечатать - довольно просто, правда? Но почему возможно, что два процесса работают с одним и тем же файлом, один записывает в него (и закрывает), другой читает из него, и дескриптор thefile
никоим образом не поврежден и может читать следующую строку из файл? Разве это не была бы какая-то критическая секция?