美文网首页
Python watchdog检测文件夹新增的文件

Python watchdog检测文件夹新增的文件

作者: 刘小白DOER | 来源:发表于2022-05-04 19:25 被阅读0次

    最近有个需求:实时监测语音文件夹中新增的文件,并对新语音文件进行处理。这个是为了完成oneclassSVM语音检测的部署需求,需要检测文件夹中新生成的文件,然后输送到模型进行检测。难点在于怎么实时检测文件夹中新增的文件,最简单的就是使用python的os模块来检测文件的创建时间,然后排序得到最新的文件。    

    os.path模块有三个文件的时间,三个函数返回的都是unix time。和笔者以前写的文章SHELL脚本根据时间点查找日志文件 - 简书 (jianshu.com) 的时间是一样的。

os.path.getatime(path)返回最近访问时间(浮点型秒数),Access Time:简写为atime;

os.path.getmtime(path)返回最近文件内容修改时间,Modify Time:简写为mtime;

os.path.getctime(path)返回文件 path 创建时间,Change Time:简写为ctime,表示文件的状态时间,当文件的状态权限被修改时间。

ipython验证三个时间函数

    但是今天笔者不使用这个os模块来完成这个功能,因为每一次都要进行全文件夹的文件时间读取并排序,在大文件夹时并不是一个好主意。笔者现使用文件检测器来完成,pyinotify 在 linux下不需要 pip 安装,直接就可以使用,且只能在linux中使用。watchdog 在 linux 和 windows 下 都可以使用。

    在windows平台下,笔者使用watchdog · PyPI下代码测试如下,23.py是脚本,12.txt是目标文件,笔者在桌面上进行了重建、修改和删除操作后的记录。

    pip安装之后,也可以使用命令行watchmedo来完成文件夹监视功能。

    测试完后,那么就来实践需求了,检测文件夹中新增的新文件。自定义类 CreatEventHandler继承 FileSystemEventHandler 重写的on_created() 方法,输出新增的文件。

    测试结果如下。脚本直接输出新建的文件,然后根据输出直接处理文件即可。

相关文章

网友评论

      本文标题:Python watchdog检测文件夹新增的文件

      本文链接:https://www.haomeiwen.com/subject/zaqgyrtx.html