python--文件系统监控

文件系统监控

  • 文件系统监控是利用watchdog监控指定目录/文件的变化,如文件或目录的增删改查都会产生一个event事件信息,每种变化都会产生一个事件信息,且有一个特定的事件类与之对应。然后通过事件处理类来处理对应的事件。

  • watchdog需要从第三方库中下载

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} 文件夹 {event.src_path} 移动至 {event.dest_path}")
        else:
            print(f"{now} 文件由 {event.src_path} 移动至 {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} 创建文件夹 {event.src_path}")
        else:
            print(f"{now} 创建文件 {event.src_path}")

    def on_deleted(self, event):
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if event.is_directory:
            print(f"{now} 删除文件夹 {event.src_path}")
        else:
            print(f"{now} 删除文件 {event.src_path}")

    def on_modified(self, event):
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if event.is_directory:
            print(f"{now} 修改文件夹 {event.src_path}")
        else:
            print(f"{now} 修改文件 {event.src_path}")


if __name__ == '__main__':
	# 实例化“观察者”对象
    observer = Observer()
    # 监控目录路径
    path = r'E:\PycharmProjects\untitled\project01\自动化运维\1.基础运维'
    event_handler = FileEventHandler()
    observer.schedule(event_handler, path, True)      # True表示递归子目录
    print(f'监控目录 {path}')
    # 开启监控
    observer.start()
    # 阻塞,使程序有序执行
    observer.join()

# 输出结果:
# 监控目录 E:\PycharmProjects\untitled\project01\自动化运维\1.基础运维
# 2021-05-12 23:40:58 创建文件 E:\PycharmProjects\untitled\project01\自动化运维\1.基础运维\123.txt
# 2021-05-12 23:41:16 删除文件 E:\PycharmProjects\untitled\project01\自动化运维\1.基础运维\123.txt
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值