监控文件/目录的内容?

时间:2009-02-28 11:42:09

标签: python file cross-platform filesystems monitoring

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

5 个答案:

答案 0 :(得分:85)

我正在开发一个可以帮助Python的MIT许可库 程序尽可能便携地监视文件系统事件。 我正试图解决各种不同之处。高度 目前的alpha版本:

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

欢迎补丁和贡献。

希望它有所帮助。 =) 欢呼声。

答案 1 :(得分:32)

对于基于Unix / Linux的系统,您应该使用File Alteration Monitor Python bindingslibfam

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

对于跨平台的方式,我不知道一个好的跨平台方式。我认为最好自己构建一个模块,该模块适用于在检测到操作系统之后使用上述两种方法之一的操作系统。

答案 2 :(得分:4)

同时查看此选项:

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

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

答案 3 :(得分:2)

我找到了这个链接,它谈到了你的问题。虽然它没有提供s解决方案/库,但我认为它会有所帮助。 http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html

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

我对这方面缺乏经验,所以我不太确定。我希望这会有所帮助。

注意
我坚持认为,正如亚当伯尼尔在评论中向我指出的那样,gamin可以在cygwin上找到。您可能想要研究cygwin的其他选项(如果存在)。

答案 4 :(得分:0)

Linux上最简单的方法是使用inotifywait(假设你的内核已经足够了)。您不需要任何特殊绑定,可以自定义inotifywait以便以任何您想要的方式在标准输出上打印输出行。看看this question就是一个很好的例子。