我想监视一个 dir ,该 dir 有 sub dirs 并且在 subdir 中有一些带有.md
. (可能还有一些其他的文件,比如*.swp...)
我只想监视 .md 文件,我已经阅读了文档,并且只有一个ExcludeFilter
, 并且在问题中:https ://github.com/seb-m/pyinotify/issues/31说,只有 dir 可以过滤但不是文件。
现在我要做的是过滤process_*
函数以检查event.name
by fnmatch
。
那么如果我只想监控指定后缀的文件,有没有更好的办法呢?谢谢。
这是我写的主要代码:
!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyinotify
import fnmatch
def suffix_filter(fn):
suffixes = ["*.md", "*.markdown"]
for suffix in suffixes:
if fnmatch.fnmatch(fn, suffix):
return False
return True
class EventHandler(pyinotify.ProcessEvent):
def process_IN_CREATE(self, event):
if not suffix_filter(event.name):
print "Creating:", event.pathname
def process_IN_DELETE(self, event):
if not suffix_filter(event.name):
print "Removing:", event.pathname
def process_IN_MODIFY(self, event):
if not suffix_filter(event.name):
print "Modifing:", event.pathname
def process_default(self, event):
print "Default:", event.pathname