千家信息网

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

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要讲解了"怎么掌握在Python中监控文件系统的技术",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么掌握在Python中监控文件系统的技术
千家信息网最后更新 2025年11月08日怎么掌握在Python中监控文件系统的技术

这篇文章主要讲解了"怎么掌握在Python中监控文件系统的技术",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么掌握在Python中监控文件系统的技术"吧!

看门狗watch dog

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

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

设置

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

安装在PyPI

在终端中运行如下命令。

pip install watchdog

它将安装PyPI(在撰写本文时为0.10.2)的最新版本。

从代码库安装

此外,您可以在本地文件夹中克隆存储库并正常安装它。首先,让我们使用以下命令克隆它。

git clone --recursive git://github.com/gorakhargosh/watchdog.git

使用以下命令更改工作目录。确保它在工作目录中包含一个名为setup.py的文件。

cd watchdog

运行以下命令安装它。

pip install -e.

直接从存储库克隆它的一个主要优点是,您可以获得带有附加特性的最新版本。

您可以在终端中运行以下命令来验证安装是否成功。

pip show watchdog

让我们继续下一节并开始编写Python代码。

实现

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

  • 观察者

  • 事件处理程序

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

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 创建一个watchdog.observers的实例。观察者线程类。

  3. 使用自己的实现定义事件处理程序的子类,并从中创建实例。

  4. 通过附加事件处理程序的观察者实例调用调度函数。它接受一些其他输入参数,比如要监视的目录的路径。

  5. 启动观察者线程并等待它生成事件,这些事件将触发事件处理程序中的代码。

事件处理程序

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

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. FileSystemEventHandler—可以覆盖其中方法的基本文件系统事件处理程序。

  3. PatternMatchingEventHandler——用与正在发生的事件相关的文件路径匹配给定的模式。

  4. RegexMatchingEventHandler -匹配给定的正则表达式和与发生事件相关的文件路径。

  5. LoggingEventHandler—记录捕获的所有事件。

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

  • on_any_event -捕获所有事件处理程序。

  • on_created -创建文件或目录时调用。

  • on_deleted -当文件或目录被删除时调用。

  • on_modified -当文件或目录被修改时调用。

  • on_moved -当文件或目录被移动或重命名时调用。

导入

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

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

FileSystemEventHandler的子类

创建一个继承自FileSystemEventHandler的新类,并根据用例相应地覆盖这些函数。我将把它命名为MyHandler,但你可以随意命名它。

class MyHandler(FileSystemEventHandler):     def on_any_event(self, event):         print(event.event_type, event.src_path)      def on_created(self, event):         print("on_created", event.src_path)      def on_deleted(self, event):         print("on_deleted", event.src_path)      def on_modified(self, event):         print("on_modified", event.src_path)      def on_moved(self, event):         print("on_moved", event.src_path)

用实现的逻辑替换print语句。对于每个函数,它都有一个名为event的输入参数,该参数包含以下变量:

  • event_type—字符串形式的事件类型。默认为没有。

  • is_directory -如果为目录触发事件,则为True;否则错误。

  • src_path—触发此事件的文件系统对象的源路径。

最有用的参数是src_path,您可以在其中使用它来确定哪个文件被修改,然后再运行相应的逻辑。

if(event.src_path == "./path/file.txt"):     print("Execute your logic here!")

观察者和事件

一旦你创建了子类,你就可以和观察者类一起安全地创建它的实例了。为监视过程分配您所选择的路径。我将检查一个新创建的名为json的文件夹。您可以根据自己的喜好修改它。

您也可以设置recursive递归参数,但强烈建议预先定义层次结构并将其设置为false,以防止权限不足或无法访问子文件夹的问题。

调用start将运行该线程,当您在相应的路径中进行修改时,将生成一个事件。

event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='./json/', recursive=False) observer.start()

测试

为了测试它,你必须实现一个正在运行的循环来防止它退出。退出一个KeyboardInterrupt异常时,调用stop函数来清理资源。

while True:     try:         pass     except KeyboardInterrupt:         observer.stop()

保存Python文件并在终端中运行它。根据您设置的名称修改名称。

python test.py

您可以通过创建一个新文档、修改其中的内容并从目录中删除它来轻松地测试它。

感谢各位的阅读,以上就是"怎么掌握在Python中监控文件系统的技术"的内容了,经过本文的学习后,相信大家对怎么掌握在Python中监控文件系统的技术这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 事件 程序 目录 处理 系统 运行 技术 观察者 路径 观察 函数 参数 命令 监控 实例 时调 模块 代码 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全关键技术内容 网络技术加盟成本大概多少 山东时代网络技术服务标准 火影ol如何登录公测服务器 上海机慧网络技术有限公司 数据网络安全测试工具 塞尔达手游服务器 国立大学网络安全专业 怎样确定数据库的安全措施 怎样打开服务器端口 服务器端口开发有哪几个 游戏服务器被关闭怎么解决 使命召唤最良心服务器 服装生产软件开发 气象局数据库类型 软件开发bug记录 微信服务器聊天记录会保留吗 诚信档案数据库授权委托书 我的专业是计算机网络技术的英语 根据数据库提取一个人的名字 北京乐享享网络技术有限公司 支付宝中国网络技术中心是啥 黑客文化与网络安全有用吗 服务器里的文件怎么打印 数据库怎么建立主索引 量化分析软件开发 网络安全法 直接责任人员 网络安全发展的心得体会 数据库列的修改 软件开发阿里巴巴自我介绍
0