2
f=open("vmi","w")
f.write("asdf")
import os
os.path.getsize("vmi")
#0 byte
f.close()
os.path.getsize("vmi")
# 4 bytes

在文件关闭之前,我在哪里可以找到丢失的 4 个字节,在程序执行时?

4

2 回答 2

5

您可以尝试先清除数据:

f.flush()

你为什么需要这样做?好吧,出于性能原因,操作系统会尝试缓冲对文件的写入 - 一次写入 1024 个字节比只写出整个缓冲区要慢得多。因此,每当您使用文件/管道/套接字之类的东西时,请记住它可能正在缓冲写入,您flush首先需要这样做。

当您关闭文件时,它会自动刷新。

于 2012-06-05T14:28:12.563 回答
1

试试这个:

import os
f = open("vmi", "w")
f.write("asdf")
f.flush()
os.path.getsize("vmi")
#4 byte
f.close()
os.path.getsize("vmi")
# 4 bytes
于 2012-06-05T14:32:43.690 回答