Python Watchdog 实行对文件或目录的监控

来源:互联网 发布:软件项目验收程序 编辑:程序博客网 时间:2024/05/19 20:19

watchdog 库支持多平台,受到越来越多的关注。顾名思义,watchdog库就是对文件或者目录(event)来监控以及作出反应。我们对文件作出删除,生成,修改和移动时,event就代表你所做的行为传入到FileSystemEvent类进行处理,然后通过FileSystemEventHandler来作出反应。

FileSystemEvent(event)—>FileSystemEventHandler(event)
即:

  1. watchdog.event.Dir/FileDeletedEvent(event)**—>**self.on_deleted(event)
  2. watchdog.event.Dir/FileCreatedEvent(event)**—>**self.on_created(event)
  3. watchdog.event.Dir/FileModifiedEvent(event)**—>**self.on_modified(event)
  4. watchdog.event.Dir/FileMovedEvent(event)**—>**self.on_moved(event)

以上这些监控和改变均是通过watchdog.observers.Observer()来实现的。

以下为官方实例:

import sysimport timeimport loggingfrom watchdog.observers import Observerfrom watchdog.events import LoggingEventHandlerif __name__ == "__main__":    logging.basicConfig(level=logging.INFO,                        format='%(asctime)s - %(message)s',                        datefmt='%Y-%m-%d %H:%M:%S')    path = sys.argv[1] if len(sys.argv) > 1 else '.'    event_handler = LoggingEventHandler()    observer = Observer()    observer.schedule(event_handler, path, recursive=True)    observer.start()    try:        while True:            time.sleep(1)    except KeyboardInterrupt:        observer.stop()    observer.join()
0 0
原创粉丝点击