python 使用watchdog对文件进行监控
时间: 2024-01-06 07:06:44 浏览: 189
使用 Watchdog 库可以轻松实现对文件系统的监控。以下是一个示例代码,用于监控指定目录下的文件变化:
```python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
# 文件被修改时触发
print(f"File {event.src_path} has been modified")
if __name__ == "__main__":
path = "/path/to/directory" # 监控的目录路径
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
在上述代码中,我们首先定义了一个 `MyHandler` 类,继承自 `FileSystemEventHandler`。在该类中,我们实现了 `on_modified` 方法,用于处理文件被修改的事件。当有文件被修改时,该方法将被触发,并输出被修改的文件路径。
然后,我们在 `__main__` 方法中初始化了一个 `Observer` 对象,并调用其 `schedule` 方法来设置监控目录和事件处理程序。最后,我们启动了观察器并进入了一个死循环,直到用户按下 `Ctrl-C` 终止程序。
当程序运行时,它将监控指定目录下的所有文件变化,并在控制台中输出被修改的文件路径。你可以根据需要修改 `MyHandler` 类中的其他方法,来处理不同的文件变化事件。
阅读全文