回答
您正在寻找文件系统事件模块。
你正在运行哪个操作系统?
(免责声明:我保持这两个模块)
- 在Linux上,你可以使用inotify。看看inotify code在mercurial。
- 在Mac OS X(> = 10.5)上,您可以使用FSEvents。请参阅pyfsevents。
除了NicDumZ的优秀模块之外,您可能还想考虑pyinotify以获得丰富(且丰富记录)的备选方案。我认为Nic's更简单(至少对于基本功能而言),但我没有详细研究它 - 我更熟悉pyinotify。顺便说一句,有趣的是,后者是纯Python(当然有;-)。
既然您提到“应该能够使用unix”,您应该明确指出您需要支持哪些unix版本,并研究它们是否提供类似的功能(以及是否通过什么接口)。例如,inotify的man page表示:
inotify API是Linux专用的。一些其他系统提供了类似的机制,例如FreeBSD具有kqueue,Solaris具有/ dev/poll。
和Nic已经在MacOSX上提到了FSEvents。一旦你确定了在给定的系统上执行它的C方式,最糟糕的情况是,如果没有预先制作的Python版本,你可以使用类似pyinotify用于inotify的方式。顺便说一句,为了完整性:在Windows上,你可以使用ReadDirectoryChangesW
(通常你可以通过ctypes或Win32扩展的win32file文件来实现)。
高级图书馆通常为他们工作的每个平台实施不同的解决方案。幸运的是,你只需要使用一种方法 - 高级库。
见this non-python Question about file monitoring
特别是,如果你可以使用QT的QFileSystemwatcher与Python绑定,或GLib库的GFileMonitor(我在我的应用程序中使用,虽然它只是为Linux),你可能会节省工作。
我正在挖掘glib的文件系统代码(当pygobject的一部分被称为“gio”,也被称为python模块“gio”),并且它已经实现inotify和win32的实现,而“fam”是投票回退http://git.gnome.org/cgit/glib/tree/gio – u0b34a0f6ae 2009-08-26 20:01:04
我正在实施一个名为看门狗的跨平台库,其中 可能是您正在寻找的。它可在 http://github.com/gorakhargosh/watchdog
HTH。 =)
- 1. 用于会话管理的Python模块
- 2. 用于文档模板管理的python模块
- 3. 用于网站管理员块管理的Drupal模块?
- 4. 管理Python模块101
- 5. Python线程管理模块
- 6. 使用Python模块在文件上打开资源管理器
- 7. 用于管理dns和dhcp的Python模块
- 8. 是否有一个用于管理Ubuntu界面的python模块?
- 9. 用于Linux进程管理的Python库
- 10. Python中的文件管理
- 11. 管理文件到模块/ Sails.js
- 12. Python包和模块的版本管理
- 13. 模块中的Maven插件管理
- 14. Node.js //管理sqlite数据库的模块
- 15. Python模块用于将图像处理
- 16. Python Saltstack:我如何管理一个git仓库中的文件?
- 17. 如何在模块化用户界面中管理基于事件的输入?
- 18. Python:用于创建基于PID的锁文件的模块?
- 19. 任何人都知道关于Python中的Akando模块和舞者模块?
- 20. Python的多处理模块:调用基于Python的多模块上的进程
- 21. RequireJS - 集中管理模块
- 22. 如何在单独的模块中管理peewee数据库?
- 23. ImportError管理模块
- 24. git存储库中的依赖管理(使用子模块)
- 25. 是否有一个用于文本清理的python模块?
- 26. 任何用于定制BNF解析器的python模块?
- 27. 用于html的python模块
- 28. 用于python的SSH模块
- 29. 用于Python的MySQL模块
- 30. 密码管理模块的文件位于SugarCRM CE版本6.5.x中?
可能http://stackoverflow.com/questions/597903/monitoring-files-directories-with-python – 2009-08-26 07:48:54