我已经和python模块看门狗一起工作了几周,在模块的执行方式和文档方面遇到了很多不一致的地方。第一个问题是模块将所有删除事件标记为文件。src_路径正确,因此可以创建解决方案,但即使删除文件夹,event.is_目录也将为false。第二个错误是它如何处理移动和重命名。当文件/目录被移动或重命名时,会触发文档对_moved的声明,但这仅适用于后者。当存在重命名时,会触发on_moved,然后触发on_modified。移动文件时,会触发“on_已删除”,然后触发“on_已创建”,然后触发“on_已修改”。这个问题我还没有解决办法。下面是支持我的声明的代码
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class OnMyWatch:
# Set the directory on watch
watchDirectory = "/give / the / address / of / directory"
def __init__(self):
self.observer = Observer()
def run(self):
event_handler = Handler()
self.observer.schedule(event_handler, self.watchDirectory, recursive = True)
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
print("Observer Stopped")
self.observer.join()
class Handler(FileSystemEventHandler):
def on_created(self, event):
print('Created')
def on_modified(self, event):
print('Modified')
def on_moved(self, event):
print('Moved')
def on_deleted(self, event):
if event.is_directory:
print("Watchdog has registered a deleted directory event")
else:
print("Watchdog has registered a deleted file event")
if __name__ == '__main__':
watch = OnMyWatch()
watch.run()
目前没有回答
相关问题 更多 >
编程相关推荐