Python看门狗:在进一步处理之前,等待从不同程序到被监视目录的文件输出完成

2024-04-26 14:39:58 发布

您现在位置: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")

它对单个文件正常工作,但在必须监视多个文件时会中断。等待程序输出完成,然后将文件复制到关注的文件夹也不是一个选项,因为我正在处理可能需要几秒钟才能复制的大型文件,然后我也遇到了同样的问题

关于如何调整on_modified事件处理程序以正确监视一个文件,直到该文件不再被修改,从而在单个目录中处理多个文件,有什么想法吗


Tags: 文件数据path程序src目录event应用程序