как сделать pyinotify для запуска программы при любых изменениях над файлом?

Я должен следить за любыми вводами или любыми изменениями, внесенными в настоящий контент над файлом, при любой модификации мне нужно запустить программу 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/

Я работаю над добавлением некоторого неопознанного добра. Для этого я хочу получать одно и только одно уведомление при каждом изменении файла. Inotify делает тяжелую работу по просмотру файловой системы, а Pyinotify предоставляет интерфейс python. Но использование этого не было прямым, как я ожидал. Проблема в том, что редакторы манипулируют файлами по-своему …

Он отлично работал, когда я использовал «эхо». Но чем когда я пытался с Emacs, я получил 3 уведомления. С VIM это было даже хуже, у меня не было уведомлений и сообщений об ошибках!

Получение превосходного примера phihag

 wm.add_watch('file.watched', pyinotify.IN_MODIFY, onChange) 

может быть:

 wm.add_watch('file.watched', pyinotify.IN_CLOSE_WRITE, onChange)