Python实时监控文件变化的简单方法(watchdog.observersObserver())
发布时间:2024-01-10 15:21:40
Python中可以使用watchdog库实现实时监控文件变化。watchdog是一个用于监控文件变化的Python库,它可以监控文件或文件夹的状态变化,并在变化发生时触发回调函数。
使用watchdog库,首先需要安装watchdog库,可以使用以下命令进行安装:
pip install watchdog
以下是一个使用watchdog库监控文件变化的简单示例:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# 继承FileSystemEventHandler类,用于处理文件变化事件
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
# 文件被修改时触发
print(f"File {event.src_path} was modified")
if __name__ == "__main__":
# 创建Observer对象
observer = Observer()
# 创建事件处理对象
event_handler = MyHandler()
# 添加文件夹监控
observer.schedule(event_handler, path='.', recursive=True)
# 启动监控
observer.start()
try:
while True:
# 每隔1秒进行一次扫描
time.sleep(1)
except KeyboardInterrupt:
# 停止监控
observer.stop()
# 等待observer线程完成
observer.join()
在上述示例中,我们创建了一个自定义的事件处理类MyHandler,继承自FileSystemEventHandler。在MyHandler中,我们重写了on_modified方法,在文件被修改时会被调用,我们可以在该方法中添加自定义的处理逻辑。
在main函数中,我们创建了一个Observer对象,并创建了一个MyHandler对象作为事件处理器。然后,我们使用observer.schedule方法将文件夹'.'(表示当前目录)以及其子目录添加到观察列表中。最后,使用observer.start启动监控。
在try语句块中,我们使用time.sleep方法每隔1秒进行一次扫描,以便持续监听文件变化。如果有键盘中断(使用Ctrl+C),我们使用observer.stop停止监控,并使用observer.join等待observer线程完成。
以上就是使用watchdog库实现实时监控文件变化的简单方法。该方法可以适用于监控文件的修改、创建、删除等操作,在文件变化时可以根据需要执行相应的操作。
