def on_deleted(self, event): ''' @summary: ファイル削除イベント ''' if event.is_directory: pass else: self.watcher.index.remove([event.src_path]) logger.debug("DELETE %s" % event.src_path) FileSystemEventHandler.on_deleted(self, event)
def __init__(self, hplayer): # Interface settings super(KeyboardInterface, self).__init__(hplayer, "Keyboard") # keyboard connection watchdog event_handler = FileSystemEventHandler() event_handler.on_created = self.bind event_handler.on_deleted = self.unbind self.observer = Observer() self.observer.schedule(event_handler, '/dev/input/', recursive=False) self.observer.start() self.remote = None self.holdDebounce = 5 self.bind(self.detect())
f"{datetime.datetime.now()}: {event.src_path} moved to {event.dest_path}" ) if __name__ == "__main__": # указываем, какая область кода не будет выполняться, # если наш модуль импортирован в другой скрипт # patterns = "*" # ignore_patterns = "" # ignore_directories = False # case_sensitive = True # event_handler = PatternMatchingEventHandler event_handler = FileSystemEventHandler( ) #создаем обработчик, который реагирует на поступление определенного события # только он ничего не умеет, так что придется его научить теми процедурами, которые мы написали ранее: event_handler.on_created = on_created event_handler.on_deleted = on_deleted event_handler.on_modified = on_modified event_handler.on_moved = on_moved path = "dir_to_watch" go_recursively = True observer = Observer( ) # создаем наблюдатель, определяет зависимость "один-ко-многим" # между объектами так, что при изменении состояния одного объекта # все зависящие от него объекты уведомляются и обновляются автоматически observer.schedule(event_handler, path, recursive=go_recursively) # Observer является относительно далеким потомком threading.Thread, # соотвественно после вызова start() мы получаем фоновый поток, # следящий за изменениями. # Так что если скрипт сразу завершится, то ничего толкового мы не получим. observer.start()
import logging from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler def do(arg): print(arg) def undo(arg): print('undo', arg) if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') path = '/dev/input/' event_handler = FileSystemEventHandler() event_handler.on_created = do event_handler.on_deleted = undo observer = Observer() observer.schedule(event_handler, path, recursive=True) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()
def on_deleted(self, event): FileSystemEventHandler.on_deleted(self, event) src_relpath = os.path.abspath(event.src_path) self._onchange(src_relpath, FsProvider.DELETE, self.sender.get_uid())
change_type = event.event_type class_name = event.__class__.__name__ if re.match('^Dir', class_name): if DEBUG: print ' - skipped dir |%s|' %(path) return return process_change(change_type, path) if __name__ == '__main__': OBSERVER = Observer() EVENT_HANDLER = FileSystemEventHandler() EVENT_HANDLER.on_created = on_changed EVENT_HANDLER.on_modified = on_changed EVENT_HANDLER.on_deleted = on_changed ## The following event types are not supported # EVENT_HANDLER.on_moved = on_changed # EVENT_HANDLER.on_any_event = on_changed OBSERVER.schedule(EVENT_HANDLER, LOCAL_PATH, recursive=True) OBSERVER.start() try: while True: time.sleep(10) except KeyboardInterrupt: OBSERVER.stop() OBSERVER.join()
# When files are deleted pass def on_moved(self, event): # When files are moved pass if __name__ == "__main__": # Initialise file system event handler fs_event_handler = FileSystemEventHandler() # Calling funcs fs_event_handler.on_modified = Handler().on_modified fs_event_handler.on_created = Handler().on_created fs_event_handler.on_deleted = Handler().on_deleted fs_event_handler.on_moved = Handler().on_moved # Initialise Observer observer_fs = Observer() observer_fs.schedule(fs_event_handler, path, recursive=False) # Start the observer observer_fs observer_fs.start() try: print("") print("######## SMRT File Watcher: Active ########") print(f"Put your SMRT files here -> {path}...") while True: time.sleep(5) except KeyboardInterrupt: