Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python watchdog

作者:——嘘丶低调   发布日期:2026-01-12   浏览:41

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class MyHandler(FileSystemEventHandler):
    def on_modified(self, event):
        print(f'文件被修改: {event.src_path}')

    def on_created(self, event):
        print(f'文件被创建: {event.src_path}')

    def on_deleted(self, event):
        print(f'文件被删除: {event.src_path}')

if __name__ == "__main__":
    path = "/path/to/watch"
    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()

解释说明:

  1. 导入模块

    • time:用于暂停程序执行。
    • ObserverFileSystemEventHandler:来自 watchdog 库,分别用于观察文件系统的变化和处理这些变化的事件。
  2. 定义事件处理器类 MyHandler

    • 继承自 FileSystemEventHandler,重写了三个方法:
      • on_modified:当文件或目录被修改时触发。
      • on_created:当文件或目录被创建时触发。
      • on_deleted:当文件或目录被删除时触发。
    • 每个方法中打印出相应的事件信息。
  3. 主程序逻辑

    • 设置要监控的路径 path
    • 创建 MyHandler 实例。
    • 创建并启动 Observer,将事件处理器绑定到指定路径,并设置递归监控(即监控子目录中的变化)。
    • 使用 try-except 捕获键盘中断(如 Ctrl+C),以优雅地停止观察器。
    • 最后调用 observer.join() 等待观察器线程结束。

上一篇:python升级pip

下一篇:python调用c++库

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站