Python使用watchdog监控文件系统

本文展示了如何使用Python的watchdog库来监控文件系统。通过创建一个FileEventHandler类并覆盖其方法,可以监听文件或目录的移动、创建、删除和修改事件,并在控制台打印相应的消息。示例代码监控D盘/test及其子目录下的文件系统活动。
摘要由CSDN通过智能技术生成

Python使用watchdog监控文件系统

  • wtachdog不是python内置的模块,需要pip安装
  • 这里使用的python3.9

监控了D盘 /test目录及其子目录下面的操作。
代码如下

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

class FileEventHandler(FileSystemEventHandler):
    def __init__(self):
        FileSystemEventHandler.__init__(self)
    def on_moved(self, event):
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if event.is_directory:
            print(f"{now}  Directory was moved from {event.src_path} to {event.dest_path}")
        else:
            print(f"{now}  File was moved from {event.src_path} to {event.dest_path}")
    
    def on_created(self, event):
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if event.is_directory:
            print(f"{now}  Directory {event.src_path} was created")
        else:
            print(f"{now}  File {event.src_path} was created")
            
    def on_deleted(self, event):
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if event.is_directory:
            print(f"{now}  Directory {event.src_path} was deleted")
        else:
            print(f"{now}  File {event.src_path} was deleted")
    
    def on_modified(self, event):
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if event.is_directory:
            print(f"{now}  Directory {event.src_path} was modified")
        else:
            print(f"{now}  File {event.src_path} was modified")

if __name__ == "__main__":
    observer = Observer()
    path = "d:\\test"
    event_handler = FileEventHandler()
    observer.schedule(event_handler, path, True)
    print(f"Start monitor directory {path}")
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    
    observer.join

对d:\test目录下进行一些操作:控制台显示结果如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值