Мониторинг одного файла

Мне нужно отслеживать (используя сторожевой таймер) один файл, а не весь каталог.

Каков наилучший способ избежать мониторинга всего каталога? Я полагаю, это

class watchdog.events.PatternMatchingEventHandler(patterns=None, ignore_patterns=None, ignore_directories=False, case_sensitive=False)[source]

может быть полезно, но как определить подходящий шаблон для моего файла (C:/dir1/dir2/file.txt)?


person Tom Cruise    schedule 28.04.2013    source источник
comment
Извините, что не по теме, но не могу удержаться от любопытства. Зачем кому-то называть себя Томом Крузом? :)   -  person class stacker    schedule 28.04.2013
comment
s/dictionary/directory/g возможно?   -  person Aya    schedule 28.04.2013


Ответы (2)


Если вы хотите просмотреть путь к файлу, например C:/dict1/dict2/file.txt, я думаю, это ваш шаблон. В нем нет подстановочных знаков, поэтому его можно использовать как есть.

Кроме того, если Watchdog доставляет вам проблемы, вы также можете подумать о Pyinotify: https://github.com/seb-m/pyinotify

person John Zwinck    schedule 28.04.2013
comment
Да, но C:/dict1/dict2/file.txt как шаблон не работает... а pyinotify работает только в Linux. - person Tom Cruise; 28.04.2013
comment
@TomCruise Возможно, вам придется поместить его в список, например. PatternMatchingEventHandler(patterns=['C:/dict1/dict2/file.txt'], ...) - person Aya; 28.04.2013
comment
ДА! Это должен быть список! Большое спасибо! - person Tom Cruise; 28.04.2013

Способ предоставления шаблонов для PatternMatchingEventHandler таков:

 from watchdog.events import PatternMatchingEventHandler

 class MyHandler(PatternMatchingEventHandler):
     patterns = ["*.xml", "*.log", "*/test.txt"] # */test.txt to watch that specifi file
person ravi404    schedule 08.02.2016
comment
Сторожевой таймер Python по-прежнему наблюдает за всем каталогом под капотом в Linux и генерирует внутренние события inotify, обработчики просто отфильтровывают то, с чем вы не хотите иметь дело. Watchdog не является решением для этого. Просто активируйте ведение журнала отладки для своего проекта, и вы увидите. - person René; 04.05.2019
comment
привет @ravi404 и @Rene, что мне вставить в ignore_patterns, если я хочу игнорировать все форматы файлов, кроме .csv (мой patterns="*.csv")? - person Naveen Reddy Marthala; 26.11.2019