如何让 pyinotify 在对文件进行任何修改时运行程序?

如何让 pyinotify 在对文件进行任何修改时运行程序?

我必须观察对文件的任何输入或对文件当前内容所做的任何更改,任何修改后我都需要运行位于同一文件夹中的 python 程序。

我尽力去理解,但没有得到任何好的结果。如果有人能帮助我解决这个问题,那将非常有帮助。

答案1

你可以做以下两件事之一。

  • 您可以编写一个程序,直接挂载到 inotify API 并对更改事件做出反应。这可能是最优雅的方法,但远远超出了 ServerFault 的范围。
  • 您可以使用inotifywait(部分inotify-tools)来监视文件并在发生某些事情时触发脚本。

对于 inotifywait,您需要设置一个 shell 脚本(最有可能是在 init.d 中)来执行以下步骤:

#!/bin/sh
while inotifywait -e modify /path/to/file
do
   /path/to/reaction_script.py
done

当您在这样的条件中调用 inotifywait 时,请不要使用-m开关;它将不起作用。

相关内容