我该如何“监视”文件的修改/变更?
我想在我指定的文件被修改时,打开我的 chrome
或 firefox
浏览器。我该怎么“监视”这个文件,以便在它被修改时做点什么呢?
从编程的角度来看,步骤大概是这样的:每隔一秒设置一个永远不会结束的循环,先记录下文件最初的修改日期,然后每秒比较一次这个日期,当它发生变化时,就执行某个操作。
7 个回答
3
安装 inotify-tools,然后写一个简单的脚本来监视一个文件。
9
Linux内核有一个文件监控的工具,叫做inotify。对于Python来说,有一个可以使用的库,叫做pyinotify。
有了这个工具,你可以根据自己的需求来构建想要的功能。
31
正如所提到的,你可以使用 pyinotify:
比如:
import webbrowser
import pyinotify
class ModHandler(pyinotify.ProcessEvent):
# evt has useful properties, including pathname
def process_IN_CLOSE_WRITE(self, evt):
webbrowser.open(URL)
handler = ModHandler()
wm = pyinotify.WatchManager()
notifier = pyinotify.Notifier(wm, handler)
wdd = wm.add_watch(FILE, pyinotify.IN_CLOSE_WRITE)
notifier.loop()
这样做比不断询问要高效得多。内核会在执行操作时直接告诉你,而不是让你一直去问。