[python]watchdog

  • 4960
  • 0

[python]watchdog

找了很一陣子的東西,最後回到 watchdog 這個模組,要知道某個目錄下的檔案目錄之新增、修改、移動、刪除。雖然這個功能小小,要跨平台就不是很容易。每個平台有不同的實作,也有不同的特性。光是 linux 就有兩、三種不同的實作。大約看了一下程式碼,watchdog 看起來幫我處理掉不少事,在功能優先的前提下也考量了效率。很可愛的小程式。強調一下,小是指可愛,不是說他沒什麼了不起的簡單喔!

它的安裝會需要 compiler 的原因是要依照系統編譯適合的模組,多是要增加效率,使用系統提供的功能。也因此有一些預編譯的包可以下載。我的系統是 windows 7 64bit,但因為我還是裝 32bit 的 python,所以我下載了 win32 的預編譯包。安裝的時候會出現一些錯誤訊息,據說是因為安裝包找到多於一個的 visual studio 的編譯環境而發出的訊息。這種錯誤訊息可以忽略,因為還是可以正常工作。

如果你跟我一樣,按照官方網頁的教學寫了簡單的程式但抓不到任何事件,可以看一下以下的連結。

http://stackoverflow.com/questions/10523303/python-watchdog-script-doesnt-function-properly

主要原因是,官方教學已經傻了,那樣寫不會出錯,但也看不到事件發生。請參考 github 的說明文件裡的範例。原因只是他忘了設定 logging 的 config。所以我想應該有抓事件,但沒寫 log 吧。

https://github.com/gorakhargosh/watchdog

當然裡面還有一些小功能我很愛的、我很想學的但一直沒學起來的功能,例如 listen event、fire event…等事件管理的機制。我已經被養成 event driven 的腦袋,但又自己弄不出一個對的機制。所以,一定要好好的研究看看它是怎麼實作的。

 

 

 

分享