[英]how to make pyinotify to run a program on any modification over a file?
我必须观察给出的任何输入或对文件中的当前内容所做的任何更改,在进行任何修改时我需要运行位于同一文件夹中的python程序。
我尽力了解,但我无法取得任何好成绩。 如果有人能帮我解决这个问题,那将会有很大的帮助。
谢谢.. :)
import pyinotify,subprocess
def onChange(ev):
cmd = ['/bin/echo', 'File', ev.pathname, 'changed']
subprocess.Popen(cmd).communicate()
wm = pyinotify.WatchManager()
wm.add_watch('file.watched', pyinotify.IN_MODIFY, onChange)
notifier = pyinotify.Notifier(wm)
notifier.loop()
显然,将cmd
替换为您要执行的命令,并将file.watched
替换为您要监视的文件。
来自http://schettino72.wordpress.com/tag/inotify/
我正在努力为doit添加一些inotify优点。 为此,我希望每次修改文件时都会收到一个和一个通知。 Inotify让人很难看到文件系统,而Pyinotify提供了一个python接口。 但是使用它并不像我预期的那样直截了当。 问题是编辑器以自己的方式操纵文件......
当我使用“echo”时它工作正常。 但是当我尝试使用Emacs时,我收到了3个通知。 使用VIM甚至最糟糕,我没有收到通知和错误消息!
获得phihag的优秀例子
wm.add_watch('file.watched', pyinotify.IN_MODIFY, onChange)
可能:
wm.add_watch('file.watched', pyinotify.IN_CLOSE_WRITE, onChange)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.