回答
您正在尋找文件系統事件模塊。
你正在運行哪個操作系統?
(免責聲明:我保持這兩個模塊)
- 在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模塊101
- 2. Python線程管理模塊
- 3. 使用Python模塊在文件上打開資源管理器
- 4. 用於Linux進程管理的Python庫
- 5. 管理文件到模塊/ Sails.js
- 6. Python包和模塊的版本管理
- 7. 模塊中的Maven插件管理
- 8. Node.js //管理sqlite數據庫的模塊
- 9. Python模塊用於將圖像處理
- 10. Python:用於創建基於PID的鎖文件的模塊?
- 11. RequireJS - 集中管理模塊
- 12. 如何在單獨的模塊中管理peewee數據庫?
- 13. ImportError管理模塊
- 14. 是否有一個用於文本清理的python模塊?
- 15. 用於Python的MySQL模塊
- 16. 密碼管理模塊的文件位於SugarCRM CE版本6.5.x中?
- 17. 用於格式化文本文件的Python模塊
- 18. 管理模塊的Java
- 19. 使用包管理器時,您如何管理Perl模塊?
- 20. Rails:用於管理非管理模型的管理路線
- 21. 是否有任何Python模塊可用於[{},{} ...]比較?
- 22. 在python中用於pcap流的模塊
- 23. 用於管理在線用戶的Node.js模塊?
- 24. 文件資源管理器dos不顯示任何數據庫
- 25. 在Python中是否有任何基於事件的編程模塊
- 26. luigi批處理模塊用於直批處理任務
- 27. Cocoapods - 沒有這樣的模塊「模塊」(適用於任何模塊)
- 28. .net用於管理pst文件的API
- 29. 單個基於Spring的ehcache管理器,用於多模塊項目中的多個ehcache.xml文件
- 30. python anaconda - 爲不同的python版本管理模塊
可能http://stackoverflow.com/questions/597903/monitoring-files-directories-with-python – 2009-08-26 07:48:54