Python看门狗:等到从其他程序到被观察目录的文件输出完成后,再进行进一步处理

问题描述

我有几个将数据输出到公共目录的dockerized应用程序,以及一个监视该目录并应在程序输出完成后进一步处理数据的dockerized python看门狗脚本。

在进一步处理文件之前,必须确保文件完整,这很重要,我尝试实现类似于Python watchdog windows wait till copy finishes解决方案:

def on_modified(event):
    sizeBefore = -1
    while os.path.getsize(event.src_path) != sizeBefore:
        sizeBefore = os.path.getsize(event.src_path)
        time.sleep(1)
    print(f"[+] File transfer of {event.src_path} completed")

对于单个文件可以正常工作,但是在必须监视多个文件时会中断。等到程序输出完成然后再将文件复制到监视的文件夹也不是一种选择,因为我正在处理可能要花至少几秒钟才能复制的大型文件,然后又遇到了同样的问题。 / p>

关于如何调整on_modified事件处理程序以正确监视直到不再修改文件的任何想法,此方法可在单个目录中处理多个文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)