繁体   English   中英

如何使pyinotify在文件的任何修改上运行程序?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM