Monitor and Ignore Specific File Events with Watchdog

  • Share this:

Code introduction


This code defines a file event handler based on the watchdog library that can monitor file events in a specified directory and ignore certain files based on event type and file extension.


Technology Stack : Packages and technologies used in the code: watchdog, observers, FileSystemEventHandler

Code Type : The type of code

Code Difficulty :


                
                    
def create_random_file_event_handler(event_type, directory, ignore_patterns=None):
    from watchdog.observers import Observer
    from watchdog.events import FileSystemEventHandler

    class RandomFileHandler(FileSystemEventHandler):
        def on_any_event(self, event):
            if event.event_type in event_type and any(event.src_path.endswith(pattern) for pattern in ignore_patterns):
                print(f"Event {event.event_type} occurred on {event.src_path}")

    if ignore_patterns is None:
        ignore_patterns = []

    event_handler = RandomFileHandler()
    observer = Observer()
    observer.schedule(event_handler, directory, recursive=True)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()