从正在写入的文件中读取-为什么起作用?

时间:2020-05-26 23:31:41

标签: python file-io

基本上,我正在寻找一种方法来读取用Python不断写入的文件,例如日志文件。

我发现了这个:https://stackoverflow.com/a/5420116/10638608

答案是:

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句柄没有以任何方式被破坏并且能够读取下一行的原因,从文件?这不是某个关键部分吗?

0 个答案:

没有答案