当我指定的文件被修改时,我想调用我的chrome
或firefox
浏览器。我怎么能“看”那个文件在修改后做某事?
以编程方式看起来步骤是......基本上每隔一秒左右设置一个永不停止的间隔并缓存初始修改日期,然后每隔一秒比较日期,当它改变时调用X.
答案 0 :(得分:25)
如上所述,您可以使用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()
这比投票更有效。内核告诉你何时进行操作,而不必经常询问。
答案 1 :(得分:8)
Linux内核有一个名为inotify的文件监控API。 python绑定是pyinotify。
有了它,你可以建立你想要的东西。
答案 2 :(得分:3)
安装inotify-tools并编写一个简单的shell脚本来观看文件。
答案 3 :(得分:2)
另一种选择是使用校验和。您可以使用类似于鼻子的nosy.py的模式。我使用dingus中的一个来检查我的目录以进行修改并运行测试套件。
答案 4 :(得分:2)
使用FAM将监视器放在文件上。
答案 5 :(得分:0)
使用快速哈希函数,cron作业,然后离开!
此外,这看起来很相关:http://en.wikipedia.org/wiki/Inotify
答案 6 :(得分:0)
显然,watchdog适用于Linux和Linux。 OSX,可用于监视目录中的更改以及优秀的示例文档。它也适用于python3.x,以防你不想被迫使用python2.x