欢迎访问宙启技术站
智能推送

实时监听文件变化的Python脚本(watchdog.observersObserver())

发布时间:2024-01-10 15:18:40

实时监听文件变化是指程序能够即时检测到文件的变化,例如文件的创建、修改或删除,并且能够立即对这些变化做出响应。在Python中,可以使用watchdog库来实现这个功能。

首先,需要安装watchdog库。可以使用以下命令在命令行中进行安装:

pip install watchdog

接下来,我们可以编写一个脚本来实现文件变化的监听,并在每次文件变化时输出相应的信息。下面是一个示例:

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

class MyHandler(FileSystemEventHandler):
    def on_modified(self, event):
        if not event.is_directory:
            print(f"File {event.src_path} has been modified")

    def on_created(self, event):
        if not event.is_directory:
            print(f"File {event.src_path} has been created")

    def on_deleted(self, event):
        if not event.is_directory:
            print(f"File {event.src_path} has been deleted")

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

以上代码创建了一个自定义的FileSystemEventHandler类,并重写了其on_modifiedon_createdon_deleted方法。接着,创建一个Observer对象和一个MyHandler对象,并将MyHandler对象绑定到Observer对象上。然后,通过调用start方法启动监听。

当文件被修改、创建或删除时,相应的方法会被调用,我们通过print语句在控制台输出相应的信息。

需要注意的是,path参数指定要监听的文件夹的路径,可以根据需要进行修改。此外,recursive参数指定是否递归监听子文件夹,默认值为False,若要监听子文件夹,请将其设置为True

最后,在主程序中使用一个try-except语句来保证监听的运行,并在用户按下Ctrl+C时停止监听。

运行以上脚本后,可以尝试在指定的文件夹中进行文件的修改、创建或删除操作,控制台会即时输出相应的信息。

这就是一个简单的实时监听文件变化的Python脚本,希望对你有帮助!