你是否曾有过文件或者项目被工作伙伴处理后,你却完全不知道的尴尬经历?
或者曾单独开发一个项目,却一直担心有哪个地方会被自己意外修改?如果你有这样的问题,那么 Python 的 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 —— 一条忠诚的 Python 狗(库)”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。