在Python 2.7.x中如何在.close()之后验证文件是否写入磁盘?

时间:2018-06-08 18:27:07

标签: python windows file disk

我正在Windows 10 / server 2016上用Python 2.7.x编写一个工具。作为我的程序的一部分,我写了一个可变大小的文件(可能是1KiB,可能是1GiB,或任何东西!)我一直在我调用myFile.close()之后发生的事情会在文件没有完全写入磁盘的情况下发生,甚至认为.close()被调用并返回(没有多线程或多线程) - 在这里处理)。

在Windows 10 / server2016系统上,Python 2.7.x的最佳方法是验证我想要推送到磁盘的所有文件内容是否已在该磁盘上完成写入?

我知道time.sleep(1)会有所帮助,但这是任意的,我不知道磁盘写入速度实际上有多快(范围从1MB / s到3GB / s) ),文件可能会很大!因此,在我的工具继续下一步之前,我需要一些不那么随意的东西来检查所有文件是否已完全写入磁盘。

1 个答案:

答案 0 :(得分:-1)

您应该在关闭文件之前致电fd.flush(),然后是os.fsync(fd) 。参考:https://docs.python.org/2/library/os.html#files-and-directories