Я хочу отслеживать каталог, и в каталоге есть подкаталоги, а в подкаталоге есть несколько файлов с .md
. (возможно, есть еще какие-то файлы, например *.swp...)
Я хочу отслеживать только файлы .md, я прочитал документ, и там только ExcludeFilter
, а в выпуске: https://github.com/seb-m/pyinotify/issues/31 говорит, что фильтровать можно только каталоги, но не файлы.
Теперь я фильтрую process_*
функций, чтобы проверить event.name
на 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