【问题标题】:How to get the diff of a file asynchronously in Python如何在 Python 中异步获取文件的差异
【发布时间】:2016-02-19 13:42:00
【问题描述】:

我正在编写一个 Web 应用程序的组件,用于显示日志文件的 tail。

我目前的尝试是使用 Web 套接字来发出文件中的更改,确保我的行数少于 n 行,并将其粘贴到文本区域中。

我目前的问题是如何在 Python 中为日志文件生成'on change' 事件。

我可以想象通过使用shutil 创建一个副本some_copy.log 来检测some_log.log 的更改,使用os.path.getmtime 检测上次更改文件的时间,获取差异并发出更改。效率低下。

有人对使用 Python 异步检测文件更改有什么建议吗?我正在使用 Python 2.7.6。

【问题讨论】:

  • 我想这个问题已经被问过了:detect-file-change-without-polling
  • @Benjamin 这些工具中的大多数都是dir-watchers,而不是file-watchers。此外,它们中的大多数已被遗弃。

标签: python python-2.7 asynchronous checksum


【解决方案1】:

我将为未来的读者添加此内容,但如果其他人想提出其他想法,我会很乐意招待他们。

我发现了一个名为 tailer 的包,它是 unix tail 程序的包装器。大致在 pythonic 伪代码中,我计划在单独的线程中执行以下操作:

for line in tailer.follow(open('some_log.log')):
    emit(line)

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 2013-05-08
    • 2018-11-27
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2020-07-18
    相关资源
    最近更新 更多