1

当我使用下面的代码监视同一服务器上的任何存储位置时,它工作得很好。然而,当我尝试将其与网络驱动器(已经映射到我的机器)一起使用时,它不起作用。请查看代码并建议如何进行。请让我知道我是否可以使用任何其他库或其他技术来实现该目的。目前我正在使用 Python Watchdog 库。

import time
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
from watchdog.observers.polling import PollingObserver

import os
import hashlib
import shutil,time

if __name__ == "__main__":
    patterns = "*"
    ignore_patterns = ""
    ignore_directories = False
    case_sensitive = True
    my_event_handler = PatternMatchingEventHandler(patterns, ignore_patterns, ignore_directories, case_sensitive)

def on_created(event):
    print(f"hey, {event.src_path} has been created!")

def on_deleted(event):
    print(f"Someone deleted {event.src_path}!")

def on_modified(event):
    print(f"{event.src_path} has been modified")

def on_moved(event):
    print(f"someone moved {event.src_path} to {event.dest_path}")

my_event_handler.on_created = on_created
my_event_handler.on_deleted = on_deleted
my_event_handler.on_modified = on_modified
my_event_handler.on_moved = on_moved   

path = "\\\\apc.ent.petap.net\\dfs\\Resource\\ABS\\ARCHIVE\\" ##This is my shared drive, I also tried #mapping it to the system, but the same thing I am getting. No error, but no response.
go_recursively = True
#my_observer = Observer()
my_observer = PollingObserver()
my_observer.schedule(my_event_handler, path, recursive=go_recursively)

my_observer.start()
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    my_observer.stop()
    my_observer.join()

4

0 回答 0