当前位置 : 主页 > 网络编程 > PHP >

python监视文件夹内容变化情况实时响应

来源:互联网 收集:自由互联 发布时间:2023-09-07
我需要的功能是: 检测指定文件夹, 有变化则重新编译整个项目 该脚本的功能是: 实时检测整个文件夹的变化, 并打印 由于当我们修改一个文件时, 会出现读写打开关闭等多个事件发生


  • 我需要的功能是: 检测指定文件夹, 有变化则重新编译整个项目
  • 该脚本的功能是: 实时检测整个文件夹的变化, 并打印
  • 由于当我们修改一个文件时, 会出现读写打开关闭等多个事件发生,造成动一个文件就会重新编译多次项目, 为了解决这个问题, 增加了时间戳功能, 判断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()

python监视文件夹内容变化情况实时响应_后端


上一篇:C++设计模式 迭代器模式
下一篇:没有了
网友评论