在 Python 2.7.x 中,如何验证 .close() 之后文件写入磁盘已完成?

2023-12-15

我正在 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),并且文件可能非常大!因此,我需要一些不那么随意的东西,可以在我的工具继续下一步之前检查所有文件是否已完全写入磁盘。


你应该打电话fd.flush(), 其次是os.fsync(fd), before关闭文件。参考:https://docs.python.org/2/library/os.html#files-and-directories

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 2.7.x 中,如何验证 .close() 之后文件写入磁盘已完成? 的相关文章

随机推荐