I would like to invoke my chrome
or firefox
browser when a file that I specify is modified. How could I "watch" that file to do something when it gets modified?
Programmatically it seems the steps are.. basically set a never ending interval every second or so and cache the initial modification date, then compare the date every second, when it changes invoke X.
As noted, you can use pyinotify:
E.g.:
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()
This is more efficient than polling. The kernel tells you when it does the operation, without you having to constantly ask.
The Linux Kernel has a file monitoring API called inotify. A python binding is pyinotify.
With it, you can build what you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With