我想看一個目錄,並且正在尋找文件修改。關於使用pyinotify的思考。問題在於,在使用IN_MODIFY事件檢查文件更改時,如果我通過網絡將甚至12 MB的小文件複製到目錄,則會觸發相當多的事件。pyinotify:處理IN_MODIFY觸發器
我不想處理這麼多觸發器。我只想在文件複製後觸發單個事件。我如何實現這一目標?
任何pyinotify中大師可以幫助
我想看一個目錄,並且正在尋找文件修改。關於使用pyinotify的思考。問題在於,在使用IN_MODIFY事件檢查文件更改時,如果我通過網絡將甚至12 MB的小文件複製到目錄,則會觸發相當多的事件。pyinotify:處理IN_MODIFY觸發器
我不想處理這麼多觸發器。我只想在文件複製後觸發單個事件。我如何實現這一目標?
任何pyinotify中大師可以幫助
嘗試改變IN_MODIFY
到IN_CLOSE_WRITE
。 當可寫文件關閉時發生IN_CLOSE_WRITE
事件。這應該只發生一次,除非複製文件的程序選擇多次關閉文件。
上述變化可能是您所需要的,但如果不是,this basic code 可以是一個非常有用的工具,用於查看什麼時候發生什麼事件。有了它,你應該能夠確定要使用的事件。
# Example: loops monitoring events forever.
#
import pyinotify
# Instanciate a new WatchManager (will be used to store watches).
wm = pyinotify.WatchManager()
# Associate this WatchManager with a Notifier (will be used to report and
# process events).
notifier = pyinotify.Notifier(wm)
# Add a new watch on /tmp for ALL_EVENTS.
wm.add_watch('/tmp', pyinotify.ALL_EVENTS)
# Loop forever and handle events.
notifier.loop()
您應該檢查[這個問題pyinotify中(https://github.com/seb-m/pyinotify/issues/45)。 IN_MODIFY事件很大程度上受到寫入文件更改方式的影響(例如,'nano'觸發2個IN_MODIFY事件,而'sublime-text'不會觸發任何) – 2015-02-08 21:34:59