用python监视文件变化
来源:互联网 发布:流程优化与再造的共性 编辑:程序博客网 时间:2024/04/28 03:06
最近在做一个项目,要监视一个目录下文件的变化,不多说,先看代码:
第一种方式:
#!/usr/bin/env python#coding=utf-8 import osimport gtkimport gobjectfrom pyinotify import WatchManager, Notifier, ProcessEvent, ThreadedNotifier, IN_DELETE, IN_CREATE,IN_MOVED_TO,IN_MOVED_FROM class hechao(ProcessEvent): def process_IN_CREATE(self, event): print "创建文件: %s " % os.path.join(event.path, event.name) def process_IN_DELETE(self, event): print "删除文件: %s " % os.path.join(event.path, event.name) def process_IN_MOVED_TO(self, event): print "移来文件: %s " % os.path.join(event.path, event.name) def process_IN_MOVED_FROM(self, event): print "移走文件: %s " % os.path.join(event.path, event.name) path = "/home/hechao/.gnomenu/favorites"gobject.threads_init()wm = WatchManager() mask = IN_DELETE|IN_CREATE|IN_MOVED_TO|IN_MOVED_FROMnotifier = ThreadedNotifier(wm, hechao())wm.add_watch(path, mask,rec=True)notifier.start() def __quit(widget):notifier.stop()gtk.main_quit() if __name__ == "__main__": win = gtk.Window() win.connect("destroy",__quit) win.show() gtk.main()
第二种方式:
import giodef directory_changed(monitor, file1, file2, evt_type): print evt_type if evt_type == gio.FILE_MONITOR_EVENT_CREATED or evt_type == gio.FILE_MONITOR_EVENT_DELETED: print "测试成功!" print "变化:",evt_typeprint type(evt_type) gfile = gio.File(".")monitor = gfile.monitor_directory(gio.FILE_MONITOR_NONE, None)monitor.connect("changed", directory_changed) import glibml = glib.MainLoop()ml.run()
再加一个定时器就OK了。
- 用python监视文件变化
- 用FileSystemWatcher监视文件变化
- 用inotify监视文件/目录变化
- 监视文件变化
- 用python监视文件变化,定时更新修改过的文件。-- 逆水寒
- (转)【pyinotify 模块】Python监视文件变化
- 监视资源管理器的文件变化
- 监视资源管理器的文件变化
- 使用控制线程监视目录文件变化
- 使用控制线程监视目录文件变化
- Android 监视文件或目录变化
- 使用inotify监视Linux文件变化
- Android 监视文件或目录变化
- 文件变化监视 java.nio.file.WatchService
- Android 监视文件或目录变化
- tails 指定输出文件的行 监视文件的变化
- Node.js文件模块fs监视文件变化
- python kazoo 监视zookeeper节点数据发生变化
- 伊索在造船厂
- 利用C#实现任务栏通知窗口
- 洗澡的小男孩
- linux netlink 路由
- MDK Proteus 联调设置
- 用python监视文件变化
- 服务器推,删除在线用户列表,使用beforeunload和异步提交删除
- 异步上传jQuery插件
- pointer to incomplete class type is not allowed是什么错误?
- [007] 如何在Android应用中使用百度地图api
- 小白兔
- pivotGridControl
- 每日单词20110502
- 从Iphone应用看通信发展趋势