Exemple #1
0
 def on_moved(self, event):
     FileSystemEventHandler.on_moved(self, event)
     src_relpath = os.path.abspath(event.src_path)
     dst_relpath = os.path.abspath(event.dest_path)
     self._onchange(src_relpath, FsProvider.DELETE, self.sender.get_uid())
     if os.path.isdir(event.dest_path):
         self._onchange(dst_relpath, FsProvider.DIRECTORY,
                        self.sender.get_uid())
     else:
         self._onchange(dst_relpath, FsProvider.FILE, self.sender.get_uid())
Exemple #2
0
def main():
    event_handler = FileSystemEventHandler()
    event_handler.on_created = on_change
    event_handler.on_moved = on_change
    event_handler.on_modified = on_change

    observer = Observer()
    observer.schedule(event_handler, str(src / Path("res")), recursive=True)
    observer.start()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()

    observer.join()

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()
    print(f"{datetime.datetime.now()}: started watching {path}")
    try:
 def on_moved(self, event):
     FileSystemEventHandler.on_moved(self, event)
     self.process_event(event.dest_path)
     return True
Exemple #5
0
 def on_moved(self, event):
     '''
     @summary: ファイル移動イベント
     '''
     FileSystemEventHandler.on_moved(self, event)
Exemple #6
0
        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:
        observer_fs.stop()