Watchdog —— 一条忠诚的 Python 狗(库)

你是否曾有过文件或者项目被工作伙伴处理后,你却完全不知道的尴尬经历?

或者曾单独开发一个项目,却一直担心有哪个地方会被自己意外修改?如果你有这样的问题,那么 Python 的 watchdog 库不妨可以解决你的问题。

无论你是在个人使用,还是在团队开发中,watchdog 可以及时通知你,文件或者目录的变化,让你对工作更加得心应手。

Watchdog 前来报告

watchdog 是一款灵活且易于使用的 Python 库,主要用于监视文件系统的改变。

当指定的文件或文件夹发生任何变动时,watchdog 就会向你的应用程序发送一个 event。这使得你可以在文件发生变动的第一时间得知,无论是文件内容的修改,还是文件名的改变,甚至是新增和删除文件,watchdog 都可以准确的给出反馈。

与其它类似的文件监视库相比,watchdog 的优势在于他更通用,更易于使用,且对于多种操作系统都有很好的兼容性。

无论是 Windows,OS X,还是 Linux,都能非常顺利的运行 watchdog。

项目地址:https://github.com/gorakhargosh/watchdog

安装

pip install watchdog   

基本功能

watchdog 的基本使用是非常简单的,你只需要简单的配置一下你的事件处理器,然后就可以让它在后台运行。为了更直观的展示其自动响应文件系统上的变化,这里提供了一段简单的代码供大家参考:

import sys   import time   import logging   from watchdog.observers import Observer   from watchdog.events import LoggingEventHandler      if __name__ == "__main__":       logging.basicConfig(level=logging.INFO,                           format='%(asctime)s - %(message)s',                           datefmt='%Y-%m-%d %H:%M:%S')       path = sys.argv[1] if len(sys.argv) > 1 else '.'       logging.info(f'start watching directory {path!r}')       event_handler = LoggingEventHandler()       observer = Observer()       observer.schedule(event_handler, path, recursive=True)       observer.start()       try:           while True:               time.sleep(1)       finally:           observer.stop()           observer.join()   

在上述脚本运行期间,任何对目录中的文件进行的操作都会被记录下来。例如,以下是记录在笔者在测试时创建新文件的一段日志信息:

2021-11-07 07:26:41 - Created file: ./2022-planner.pdf   2021-11-07 07:26:41 - Modified directory: .   

高级功能

watchdog 提供了 watchmedo 用于方便的生成基于 watchdog 的脚本。

这里给出一个例子如何使用 watchmedo 来创建一个脚本,这个脚本将会在每次有 Python 文件保存时执行 unittest。

watchmedo shell-command \       --patterns="*.py" \       --recursive \       --command='echo "${watch_src_path}" && python -m unittest discover path_to_your_tests' \       .   

同时,WatchDog 还可以处理诸如文件被 Vim 编辑的情况。

因为 Vim 在编辑文件时,不会直接修改文件,而是新建一个备份文件,再将其替换为我们需要编辑的文件。

这就会导致我们无法通过监控文件修改来获取 Vim 的编辑事件。

而 Watchdog 则提供了使得 Vim 编辑能够被捕获的方式,增加了使用的便捷性。

训练场 —— 预备!

现在,你尝试在项目下创建一个新的 Python 文件,看看是否会在我们运行的脚本中被记录下来。

可以试试看修改它们,或者移动文件到其它文件夹,看看事件有没有被记录。

甚至你还可以尝试使用 Vim 来编辑文件,看看是否能够被捕获!

Watchdog,值得拥有!

随着越来越多的人沉迷于写代码和深化算法,一款能有效的监控文件系统变化的工具尤其重要。

watchdog 以其强悍和使用方便的特性,成为使得人们在面对混乱的文件系统时,能够保持良好工作状态的利器。它可以帮助你实时了解工程文件的变化,从而让你更好的去管理你的项目。


以上就是“Watchdog —— 一条忠诚的 Python 狗(库)”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

Watchdog —— 一条忠诚的 Python 狗(库)_第1张图片

二、Python必备开发工具

Watchdog —— 一条忠诚的 Python 狗(库)_第2张图片

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

Watchdog —— 一条忠诚的 Python 狗(库)_第3张图片

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

Watchdog —— 一条忠诚的 Python 狗(库)_第4张图片

五、Python练习题

检查学习结果。

Watchdog —— 一条忠诚的 Python 狗(库)_第5张图片

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

Watchdog —— 一条忠诚的 Python 狗(库)_第6张图片

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
Watchdog —— 一条忠诚的 Python 狗(库)_第7张图片

你可能感兴趣的:(python,开发语言)