Можно использовать регулярное выражение с командой оболочки inotify, но не с pyinotify.
Я мог бы получить список каталогов с помощью регулярного выражения и передать его в add_watch, но папки «Do *» являются динамическими, в том смысле, что они создаются и уничтожаются очень часто, и, следовательно, создают жесткий список и передают его в Функция add_watch будет неточной.
Я попытался скомпилировать регулярное выражение и передать его в add_watch, и оно не работает, возможно, потому, что оно ожидает строку или список строк.
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()
Я хотел бы передать регулярное выражение в функцию add_watch pyinotify без необходимости создания жесткого списка, а затем передать его, так как содержимое каталога будет различаться.