假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。

比如说应用到我们之前的音乐高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调用音乐高潮提取器,自动提取该音乐文件的高潮部分。

这样的监控器写起来也不难,但是很花时间,有许多情况要考虑。不过幸好我们是写Python的,有许多轮子可以使用。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。

在终端输入以下命令安装我们所需要的依赖模块:

pip install watchdog

看到 Successfully installed xxx 则说明安装成功。

2.基本使用

看门狗的使用并不复杂,请认真看以下代码和注释:

可以看到代码中有几个关键步骤,

1.配置各项信息;

2.生成事件处理器、监控器;

3.注册事件处理器、配置目录、递归执行(即同时监控子文件夹);

4:启动。

其实,看门狗的observer是基于  threading.Thread  对象的,所以observer很多属性都继承了 threading.Thread 的属性。

如果你不带参数地运行该脚本,就是要监控脚本文件所在的文件夹,如果要监控其他文件夹,记得运行时带文件夹的路径参数,如:

python obserber.py /data/home/ckend/

我们来试着运行看看:

可以看到,我在当前文件夹下做的所有操作都被记录下来了。接下来我们就试试怎么自定义一些操作。

3.监控文件变化

要实现这样的功能,我们有几种方法,一个是在原来log的处理器上做一些新增修改,比如多增一个函数调用音乐高潮提取器。第二个是重新继承 FileSystemEventHandler 类,并做相应的修改。这里我们还是要保留log的样式,只是在log的时候顺便提取音乐高潮,因此采用第一个方法。

看看 LoggingEventHandler 源代码中的 on_created ,这就是当文件创建时监控器的操作:

我们仅需要继承这个类并对 on_created 进行修改,就能完成我们想要的功能:

首先声明一个类,继承 LoggingEventHandler ,然后重载 on_created 函数,在这个函数中不仅记录文件事件变化,还要对mp3文件做一次音乐高潮提取。最后别忘了,生成事件处理器时要用我们新的类名。

看看效果,将 小永远.mp3 复制过来:

成功监控文件变化并提取到音乐高潮,生成高潮文件。这样,只要你保持这个Python进程不关闭,它就会一直监控这个文件夹,一旦有音乐文件进入,就会自动提取它的音乐高潮,在linux系统下,可以搭配supervisor使用,非常好用。

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领AI全套资料!

神器推荐!一个能监控文件变化的Python神器—看门狗相关推荐

  1. rust 使用hotwatch 监控文件变化

    hotwatch是一个可以监控文件变化的crate,使用起来非常方便.参考:GitHub - francesca64/hotwatch: A Rust library for conveniently ...

  2. Python监控文件变化:watchdog

    Python监控文件变化有两种库:pyinotify和watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.也就是说,watchdog跨平台. ...

  3. delphi 监控文件变化_监控Linux文件变化,防止系统被黑

    运维服务器比较头疼的一个问题是系统被黑,沦为肉鸡或者矿机.除了加强安全基线配置,加强网络和端口加固,系统和应用bug修复,上IDS/IPS(入侵检测/防御系统)之外,另一个方面就是系统监控,一个完善准 ...

  4. viper监控文件变化出现两次事件

    问题描述 监控配置文件变化,如果内容发生了修改,需要及时加载. 使用viper监控文件变化发现了, 对文件修改一次,会出发两次事件. 示例代码 viper.OnConfigChange(func(e ...

  5. 服务器监控文件变化,如何使用nodejs监控文件变化并使用sftp上传到服务器

    如何使用nodejs监控文件变化并使用sftp上传到服务器 发布时间:2021-07-01 12:06:56 来源:亿速云 阅读:99 作者:小新 这篇文章主要为大家展示了"如何使用node ...

  6. node 自动上传文件到服务器,利用nodejs监控文件变化并使用sftp上传到服务器

    最近在用react+express做一个自己的工具型网站(其实就是夺宝岛抢拍器) 然后因为经常要改动,而且又要放到服务器上进行测试.总是要webpack,然后手动把文件上传上去,不胜其烦,索性搜索了下 ...

  7. FileSystemWatcher 监控文件变化

    本文测试了FileSystemWatcher 类监控文件变化. using System; using System.Security.Permissions; using System.IO;nam ...

  8. 一个批量转换文件编码的python脚本

    一个批量转换文件编码的python脚本 需要将工作目录下的文件进行转码,开始的编码是GBK的,需要将其转换为utf-8的.文件较多,手动转换肯定不行,用Python写个脚本来实现.找到一段代码参考: ...

  9. linux print$共享文件夹,利用python的看门狗在linux下监控afp共享文件夹

    我希望linux机器(Raspberry pi)通过AFP(苹果文件协议,macbook为主机)监控共享文件夹.在 我可以通过mount_afp挂载共享文件夹,并安装了监视程序python库来监视共享 ...

最新文章

  1. windbg学习-------.expr和masm表达式
  2. go.sum中特殊hash如何计算
  3. python自带time库吗_Python的内置库time
  4. OS10.11安装Cocoapods并集成ReactiveCocoa
  5. 背景颜色及背景图片相关的属性
  6. Neo4j:Cypher –删除重复的节点
  7. 【LeetCode笔记】剑指Offer 43. 1~n 整数中1出现的次数(Java、数位dp、偏数学)
  8. 数据结构上机测试2-2:单链表操作B
  9. mysql 日志同步 数据不同步_Mysql互为主从问题--日志同步数据不同步
  10. 51Nod 1085 01背包
  11. 输变电设备物联网节点设备无线组网协议_AIS-Link-艾森智能的工业物联网连接协议...
  12. webflow ajax,java开发之spring webflow实现上传单个文件及多个文件功能实例
  13. 晓月antivirV8P绿色汉化扫描自由版
  14. Apache Server搭建独立图片服务器
  15. 【优化算法】差分蜂群优化算法(DEABC)【含Matlab源码 1230期】
  16. Cameralink光端机
  17. dorado7.x form提交数据报错
  18. USB接口芯片的选型参考(转贴)
  19. 微信小程序授权登陆源码
  20. Spring读源码系列番外篇04----类型转换--上---老旧的PropertyEditor

热门文章

  1. 提取图像感兴趣区域_从图像中提取感兴趣区域
  2. 如何通过ABB代理程序备份群晖DSM系统
  3. 互联网的下一波红利在哪里?
  4. 使用opencv-python对图片进行球面投影
  5. bugtrap microsoft 默认崩溃提示框_办公利器?微软(Microsoft)Surface go P?鼠标仅售169.00元_...
  6. 威力导演19安装说明以新功能
  7. android打电话播放录音,安卓原生的拨号器应用通话录音功能已经到来但暂时还不能正常使用...
  8. 加速度传感器的安装夹具介绍
  9. Windows 7 系统服务优化
  10. 爱情八十八课,对抗消磨