使用mac上的python监视目录更改

时间:2012-07-19 21:54:06

标签: python macos

正如标题所述,我需要使用python

来观察更改目录(主要是文件添加)

我偶然发现了一些解决方案here,但没有一个正常工作

1.一个解决方案是使用“fcntl”,我在我的系统上尝试了它但是它失败并出现错误“没有属性F_SETSIG”。搜索它没有任何用处

2.Python模块看门狗无法安装,因为我没有xcode,我不想下载(下载太大而且这么小的工作有很多不必要的东西)

已接受的解决方案是特定于Windows的,没有其他任何人在没有大包的情况下在osx上工作

所以最后我不想要任何涉及XCODE,PyQT,轮询,繁忙循环的解决方案(即每隔几秒检查一次DIR)

Applescripts默认支持这个,所以我认为python也应该没有任何大模块/包

我正在使用OS X 10.7.2和python 2.7.3

提前致谢

2 个答案:

答案 0 :(得分:1)

您要使用的API是FSEvents API。 Python没有附带到该API的绑定,因此您需要自己创建绑定或使用MacFSEventspython-watchdog等库。但是你真的应该只安装Xcode - 这些库需要编译C绑定,而Xcode是获得C编译器的最简单方法。

如果你真的想要避免使用Xcode,你可以使用ctypes module滚动自己的绑定,但这将是一个巨大的痛苦。

  

Applescripts默认支持这个,所以我认为python也应该没有任何大模块/包

运气好。可用的各种第三方库并不是那么大,它们只需要一个C编译器就可以工作。

答案 1 :(得分:0)

我现在在osx上使用看门狗。它很棒。安装xcode。或者只是编译器的命令行工具。

您可以在没有xcode的情况下安装gcc编译器:https://github.com/kennethreitz/osx-gcc-installer

如果你真的想要一个AppleScript方法,你可以使用python绑定appscript:http://appscript.sourceforge.net/py-appscript/index.html
我也使用它们,它们工作得很好。

  

所以最后我不想要任何涉及XCODE,PyQT,轮询的解决方案,   繁忙循环(即每隔几秒检查一次DIR)

基本上你说你根本不需要任何东西。任何解决方案都将使用一种形式的轮询。无论是系统触发还是app忙循环。您只需花一点时间安装编译器即可使用您选择的解决方案。