我想看一个目录,并且正在寻找文件修改。关于使用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