watchdog 库支持多平台,受到越来越多的关注。顾名思义,watchdog库就是对文件或者目录(event)来监控以及作出反应。我们对文件作出删除,生成,修改和移动时,event就代表你所做的行为传入到FileSystemEvent类进行处理,然后通过FileSystemEventHandler来作出反应。
FileSystemEvent(event)—>FileSystemEventHandler(event) 即:
watchdog.event.Dir/FileDeletedEvent(event)**—>**self.on_deleted(event)watchdog.event.Dir/FileCreatedEvent(event)**—>**self.on_created(event)watchdog.event.Dir/FileModifiedEvent(event)**—>**self.on_modified(event)watchdog.event.Dir/FileMovedEvent(event)**—>**self.on_moved(event)以上这些监控和改变均是通过watchdog.observers.Observer()来实现的。
以下为官方实例:
import sys import time import logging from watchdog.observers import Observer from watchdog.events import LoggingEventHandler if __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()