python监视文件夹内容变化情况实时响应
发布时间:2023-10-20 09:00:45 287 相关标签:
- 我需要的功能是: 检测指定文件夹, 有变化则重新编译整个项目
- 该脚本的功能是: 实时检测整个文件夹的变化, 并打印
- 由于当我们修改一个文件时, 会出现读写打开关闭等多个事件发生,造成动一个文件就会重新编译多次项目, 为了解决这个问题, 增加了时间戳功能, 判断1s内不管发生多少事件都按照1个事件计算
- 运行命令:
python monitor.py 项目文件夹/
# monitor.py
#!/usr/bin/env python
#coding:utf-8
import sys
import pyinotify
import time
try:
path = sys.argv[1]
except:
raise(AttributeError("has no attribute path"))
class MyEvent(pyinotify.ProcessEvent):
def __init__(self):
super().__init__()
self.flag = time.time()
# 这里的事件处理函数还有很多, 可以去官网查看, 这是重写
def process_IN_MODIFY(self,event):
# 上次时间已经超过1s
if time.time() - self.flag > 1:
print("上次时间超过1s, 可以运行了")
print(path+event.name, " be change")
self.flag = time.time()
os.system('make test') # 这里就可以做想做的事情了
vm = pyinotify.WatchManager()
vm.add_watch(path,pyinotify.ALL_EVENTS,rec = True)
event = MyEvent()
notifier = pyinotify.Notifier(vm,event)
notifier.loop()

文章来源: https://blog.51cto.com/u_15888063/5879383
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报