广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么掌握在Python中监控文件系统的技术
  • 227
分享到

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

2023-06-15 16:06:06 227人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

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

这篇文章主要讲解了“怎么掌握在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&mdash;可以覆盖其中方法的基本文件系统事件处理程序。

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

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

  5. LoggingEventHandler&mdash;记录捕获的所有事件。

其余的类继承自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&mdash;字符串形式的事件类型。默认为没有。

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

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

最有用的参数是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中监控文件系统的技术这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

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

本文链接: https://www.lsjlt.com/news/280935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么掌握在Python中监控文件系统的技术
    这篇文章主要讲解了“怎么掌握在Python中监控文件系统的技术”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么掌握在Python中监控文件系统的技术”吧!看门狗watch dog通过阅读本...
    99+
    2023-06-15
  • Java面试必备技能:在Linux文件系统中掌握文件操作技巧!
    在Java开发中,文件操作是一个非常常见的任务。因此,熟练掌握在Linux文件系统中的文件操作技巧是Java面试的必备技能之一。本文将介绍如何在Linux文件系统中使用Java进行文件操作,并穿插演示代码。 一、Java中文件操作的基础知...
    99+
    2023-08-04
    面试 linux 文件
  • 在Linux系统中使用AIDE监控文件的完整性是怎样的
    在Linux系统中使用AIDE监控文件的完整性是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。AIDE主要的用途就是检查文件的完整性,审查系统中有那些文件被修改过,AID...
    99+
    2023-06-28
  • 怎么在Ubuntu系统中使用Psensor监控硬件的温度
    今天就跟大家聊聊有关怎么在Ubuntu系统中使用Psensor监控硬件的温度,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。支持监控以下硬件温度: 主板和CPU温度 Nvidia GP...
    99+
    2023-06-13
  • 怎么在Linux系统中运行python文件
    这篇文章主要介绍了怎么在Linux系统中运行python文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在Linux系统中运行python文件文章都会有所收获,下面我们一起来看看吧。Linux下可直接像运...
    99+
    2023-06-28
  • 使用python怎么在pyqt5系统中查找文件
    使用python怎么在pyqt5系统中查找文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-14
  • 怎么在python中利用os处理系统文件
    怎么在python中利用os处理系统文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python有哪些常用库python常用的库:1.requesuts;2.scrapy...
    99+
    2023-06-14
  • 怎么在Linux系统中删除文件中的隐私数据
    这期内容当中小编将会给大家带来有关怎么在Linux系统中删除文件中的隐私数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个...
    99+
    2023-06-07
  • 怎么使用python统计字符在文件中出现的次数
    今天小编给大家分享一下怎么使用python统计字符在文件中出现的次数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、本项目...
    99+
    2023-07-05
  • 在Linux系统中怎么将tar文件解压到不同的目录中
    本篇内容主要讲解“在Linux系统中怎么将tar文件解压到不同的目录中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux系统中怎么将tar文件解压到不同的目录中”吧!你不必使用cd命令切...
    99+
    2023-06-13
  • 怎么在Linux系统上显示当前及子目录中的文件数量
    这篇文章主要讲解了“怎么在Linux系统上显示当前及子目录中的文件数量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux系统上显示当前及子目录中的文件数量”吧!在本指南中,我们将...
    99+
    2023-06-16
  • 怎么在Linux系统中防止文件和目录被意外的删除或修改
    这篇文章主要介绍了怎么在Linux系统中防止文件和目录被意外的删除或修改,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux中防止文件和目录被意外删除和修改默认,chat...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作