加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

掌握在Python中监控文件系统的技术

发布时间:2021-04-06 16:03:08 所属栏目:外闻 来源:互联网
导读:看门狗watch dog 通过阅读本文,您将了解如何检测对Python应用程序中现有文件所做的更改。我们将使用一个维护良好的模块,叫做看门狗(watchdog)。基于官方文档,watchdog是一个用于监视文件系统事件的Python API库和shell实用程序。 它同时支持Python 2.7和3

看门狗watch dog

通过阅读本文,您将了解如何检测对Python应用程序中现有文件所做的更改。我们将使用一个维护良好的模块,叫做看门狗(watchdog)。基于官方文档,watchdog是一个用于监视文件系统事件的Python API库和shell实用程序。

它同时支持Python 2.7和3.4+。但是,对于旧版本,建议您使用watchdog < 0.10.0。在本教程中,我将只介绍Python API库。让我们继续下一节,开始安装必要的模块。

设置

设置是相当简单和直接的pip安装。在继续之前,强烈建议设置一个虚拟环境。有两种方法

安装在PyPI

在终端中运行如下命令。让我们继续下一节并开始编写Python代码。

实现

watchdog的主要构建模块基于以下类:

  • 观察者
  • 事件处理程序

因此,实现就像这样简单:

  1. 创建一个watchdog.observers的实例。观察者线程类。
  2. 使用自己的实现定义事件处理程序的子类,并从中创建实例。
  3. 通过附加事件处理程序的观察者实例调用调度函数。它接受一些其他输入参数,比如要监视的目录的路径。
  4. 启动观察者线程并等待它生成事件,这些事件将触发事件处理程序中的代码。

事件处理程序

当前模块中有4种类型的事件处理程序可用:

  1. FileSystemEventHandler—可以覆盖其中方法的基本文件系统事件处理程序。
  2. PatternMatchingEventHandler——用与正在发生的事件相关的文件路径匹配给定的模式。
  3. RegexMatchingEventHandler -匹配给定的正则表达式和与发生事件相关的文件路径。
  4. LoggingEventHandler—记录捕获的所有事件。

其余的类继承自FileSystemEventHandler,它提供了以下函数供我们重写。

  • on_any_event -捕获所有事件处理程序。
  • on_created -创建文件或目录时调用。
  • on_deleted -当文件或目录被删除时调用。
  • on_modified -当文件或目录被修改时调用。
  • on_moved -当文件或目录被移动或重命名时调用。

导入

创建一个新的Python文件,并添加以下导入声明。我把它命名为test.py。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读