path_to_watch = "."before = dict ([(f, None) for f in os.listdir (path_to_watch)])while 1:
time.sleep (10)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after] if added: print "Added: ", "碰晌, ".join (added) if removed: print "毁凯Removed: ", ", "纤吵唤.join (removed)
before = after
笨办法是在循环中猛中不断读取目录以及目录中文件的最后修改时间,如果有变更,则说说文件被修改。这种办法需要不断的循环读取文件信息,这对cpu占用较高,同时也会产生一定的磁盘IO,短时间小范围使用尚可,如果长时间运行在服务器上,或者监控一个包含很多文件的目录则不可取。
办明樱法之激知丛二是利用 *** 作系统提供的功能来实现。
比如在Windows中,可以利用Windows API【ReadDirectoryChangesW】来实现。这可以免去大量的磁盘IO。因为文件修改的频率一般不高,可以使用定计时器进行循环,对cup的占用也会少很多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)