如何在 Python 中异步获取文件差异
How to get the diff of a file asynchronously in Python
我正在编写一个显示日志文件 tail
的网络应用程序组件。
我目前的尝试是使用网络套接字发出文件中的更改,确保少于 n
行,并将其添加到文本区域。
我目前的问题是如何为 Python 中的日志文件生成 'on change'
事件。
我可以想象通过用 shutil
, detect the last time the file was changed with os.path.getmtime
创建副本 some_copy.log
来检测 some_log.log
的变化,获取差异并发出变化。这有点低效。
有人对使用 Python 异步检测文件更改有什么建议吗?我正在使用 Python 2.7.6.
我会为未来的读者添加这个,但如果其他人想提出不同的想法,我会很乐意接受他们。
我找到了一个名为 tailer 的包,它是 unix tail 程序的包装器。大致在 pythonic 伪代码中,我计划在一个单独的线程中执行以下操作:
for line in tailer.follow(open('some_log.log')):
emit(line)
我正在编写一个显示日志文件 tail
的网络应用程序组件。
我目前的尝试是使用网络套接字发出文件中的更改,确保少于 n
行,并将其添加到文本区域。
我目前的问题是如何为 Python 中的日志文件生成 'on change'
事件。
我可以想象通过用 shutil
, detect the last time the file was changed with os.path.getmtime
创建副本 some_copy.log
来检测 some_log.log
的变化,获取差异并发出变化。这有点低效。
有人对使用 Python 异步检测文件更改有什么建议吗?我正在使用 Python 2.7.6.
我会为未来的读者添加这个,但如果其他人想提出不同的想法,我会很乐意接受他们。
我找到了一个名为 tailer 的包,它是 unix tail 程序的包装器。大致在 pythonic 伪代码中,我计划在一个单独的线程中执行以下操作:
for line in tailer.follow(open('some_log.log')):
emit(line)