阅读外部修改的文件

时间:2017-08-29 08:04:08

标签: python file

我有一个小的python脚本,它来自stdin。从这个意义上讲,输入是由尾部-F生成的,然后通过管道输出到脚本。我想避免使用tail -F并直接从python中读取文件。根据{{​​3}}的配方,这很好。

所以,最后我有一个小功能如下:

def read_file(thefile, follow_file = True, wait_time = 0.1, seek_end=False):
    if seek_end:
        thefile.seek(0, 2)
    while True:
        line = thefile.readline()
        if not line:
            if follow_file:
                time.sleep(wait_time)
                continue
            else:
                break
        yield line

这比tail -f工作得很好。但原因是之前使用tail -F,有时输入文件(它是指向真实文件的软链接)可能会更改并指向新文件。在这种情况下,前面的代码不会引发任何异常,我也没有从文件对象中找到任何允许我发现这种情况的属性。

我有什么遗漏或者我需要使用pyinotify来做这件事吗?

提前致谢

0 个答案:

没有答案