首页 > 解决方案 > 等到文件复制/上传完成

问题描述

我必须等到文件复制/上传完全使用 python 完成(首选方法),bash/shell 也很好(我将从 python 调用)

我已经共享了 nfs 目录 /data/files_in/,如果有人将文件复制/上传到 /data/files_in/ 目录,我应该通知其他应用程序,只有在完成文件复制/上传完成后

我当前检查文件的代码是否已完成复制

            while True:

                current_size =  Path(file_path).stat().st_size
                time.sleep(5)
                result_size = Path(file_path).stat().st_size

                if result_size == current_size:
                    break
            # Notify your application 

它仅适用于小文件,对于像 100G 文件这样的大文件,它无法正常工作。

我增加了一个计时器,但有时它仍然会失败,并且基于计时器的方法似乎不是一个值得依赖的好主意。

有没有其他方法,我可以实现代码来解决这个问题?

操作系统:Linux,Cent os Python 版本:3.9

标签: pythonpython-3.xlinuxshellnfs

解决方案


我无法发表评论,所以我会在这里问。结果大小不应该比当前大小更大(或至少不同)以便完成文件上传并因此停止循环吗?


推荐阅读