I need to monitor (using watchdog) a single file, not a whole directory.
What is the best way to avoid monitoring a whole directory?
I suppose this
class watchdog.events.PatternMatchingEventHandler(patterns=None, ignore_patterns=None, ignore_directories=False, case_sensitive=False)[source]
could be helpful, but how to define an appropriate pattern for my file (C:/dir1/dir2/file.txt)?
If you want to watch a file path like C:/dict1/dict2/file.txt
, I think that's your pattern right there. There are no wildcards in, so it should be usable as-is.
As an aside, if Watchdog is giving you trouble, you could also consider Pyinotify: https://github.com/seb-m/pyinotify
The way to provide patterns for PatternMatchingEventHandler
is
from watchdog.events import PatternMatchingEventHandler
class MyHandler(PatternMatchingEventHandler):
patterns = ["*.xml", "*.log", "*/test.txt"] # */test.txt to watch that specifi file