监控文件/目录的内容?

这个问题在这里已有答案:

  • 如何查看文件中的更改?                                     23个答案

我正在寻找一个跨平台的文件监视python包? 我知道可以使用pywin32监视Windows上的文件,并且有可以在Linux / Unix上运行的软件包,但是有人知道跨平台的吗?

5个解决方案
85 votes

我正在研究可帮助Python的MIT许可库程序会尽可能方便地监视文件系统事件。我正在努力解决一些差异。 高度目前的Alpha版本:

在这里查看:[http://github.com/gorakhargosh/watchdog/]

欢迎补丁和贡献。

希望能帮助到你。 =)干杯。

GoraKhargosh answered 2019-11-10T00:49:10Z
32 votes

对于基于Unix / Linux的系统,您应该使用File Alteration Monitor Python绑定到libfam。

对于基于Windows的系统,应绑定Win32 API FindFirstChangeNotification和相关功能。

至于跨平台的方式,我不知道一个好的跨平台的方式。 我认为最好是自己构建一个模块,以在检测到OS是使用上述两种方法之一的OS上运行。

Brian R. Bondy answered 2019-11-10T00:48:27Z
2 votes

我找到了此链接,其中讨论了您的问题。 尽管它实际上并没有提供解决方案/库,但我认为它将有所帮助。[http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html]

我认为还没有跨平台的,所以您可能想自己动手做。

我在这方面没有经验,所以我不确定。 我希望这有帮助。

注意
我的立场是正确的,正如亚当·伯尼尔(Adam Bernier)在评论中向我指出的那样,可在Cygwin上使用gamin。 您可能想研究有关cygwin的其他选项(如果存在)。

batbrat answered 2019-11-10T00:49:55Z
2 votes

还要检查此选项:

[http://pypi.python.org/pypi/watchdog]

与Windows和OS X上的跨平台应用程序一起使用。

reese.ch answered 2019-11-10T00:50:31Z
0 votes

在Linux上,最简单的方法是使用inotifywait(假设您的内核足够新)。 您不需要任何特殊的绑定,可以根据需要将inotifywait定制为在标准输出上打印输出行。 看这个问题,这是一个很好的例子。

JesperE answered 2019-11-10T00:50:55Z
translate from https://stackoverflow.com:/questions/597903/monitoring-contents-of-files-directories