回答
您正在尋找文件系統事件模塊。
你正在運行哪個操作系統?
(免責聲明:我保持這兩個模塊)
- 在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