如何"观察"文件以进行修改/更改?

med*_*iev 12 python linux

当我指定的文件被修改时,我想调用我的chromefirefox浏览器.我怎么能"监视"该文件在修改后做某事?

程序上似乎步骤是..基本上每隔一秒左右设置一个永不停止的间隔,并缓存初始修改日期,然后每隔一秒比较日期,当它改变调用X.

Mat*_*hen 26

如上所述,您可以使用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()
Run Code Online (Sandbox Code Playgroud)

这比投票更有效.内核告诉你何时进行操作,而不必经常询问.


Mat*_*gro 8

Linux内核有一个名为inotify的文件监视API.python绑定是pyinotify.

有了它,你可以建立你想要的东西.