首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将regex与pyinotify一起使用

无法将regex与pyinotify一起使用
EN

Stack Overflow用户
提问于 2019-06-26 16:03:55
回答 1查看 90关注 0票数 1

可以将正则表达式与inotify shell命令一起使用,但不能与pyinotify一起使用。我可以使用正则表达式获取目录列表并将其传递给add_watch,但是,文件夹"Do*“是动态的,因为它们经常被创建和销毁,因此,创建严格的列表并将其传递给add_watch函数是不准确的。

我尝试编译正则表达式并将其传递给add_watch,但它不起作用,可能是因为它需要一个字符串或字符串列表。

代码语言:javascript
复制
import pyinotify,subprocess,re
def onChange(ev):
  subprocess.run("echo 'changed'", shell = True)

wm = pyinotify.WatchManager()
regex_dir = re.compile('/var/run/shm/Do*/updates/ab*.xml')
wm.add_watch(regex_dir, pyinotify.IN_CLOSE_WRITE , onChange)
notifier = pyinotify.Notifier(wm)
notifier.loop()

我想将正则表达式传递给pyinotify的add_watch函数,而不必创建严格的列表,然后传递它,因为目录内容会有所不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-26 16:17:11

WatchManager.add_watch接受允许在路径名上执行全局绑定的do_glob option

path参数传递的是unicode字符串,而不是正则表达式对象。

代码语言:javascript
复制
dir_glob = '/var/run/shm/Do*/updates/ab*.xml'
wm.add_watch(dir_glob, pyinotify.IN_CLOSE_WRITE, onChange, do_glob=True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56768042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档