Windows OS:Python 看门狗检测"Deleted"文件的目标文件路径



我有一个使用看门狗python模块在Windows上运行的python脚本,该模块旨在递归地检测包含文件夹的文件夹中的文件位置更改。当我将内部文件夹中的文件移动到其当前位置之外时,会发生 FileDelete 事件,而不是 FileMoved。我希望能够知道文件的最终位置是什么,我可以在Mac上这样做,但在Windows上不能这样做。我读了这篇文章,这表明问题出在Windows上。

这是我的代码:

class Handler(PatternMatchingEventHandler):
    @staticmethod
    if event.event_type == 'created' or event.event_type == 'modified':
          # do something if file created.
    elif event.event_type == 'deleted'
          # do something if file deleted
    elif event.event_type == 'moved':
          # do something if file moved

如何使文件移动事件发生,而不是文件创建和删除事件?或者是否有解决方法可以让我通过获取最终文件路径将 DeletedEvent 视为 MovedEvent?

任何帮助将不胜感激!

尝试像这样分别定义每个事件:

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

无论如何,我认为在此链接中,您会找到所需的信息:https://www.thepythoncorner.com/2019/01/how-to-create-a-watchdog-in-python-to-look-for-filesystem-changes/

最新更新