f=open("vmi","w")
f.write("asdf")
import os
os.path.getsize("vmi")
#0 byte
f.close()
os.path.getsize("vmi")
# 4 bytes
我可以找到丢失的4个字节, 关于程序执行,文件关闭之前?
答案 0 :(得分:5)
您可以先尝试清除数据:
f.flush()
你为什么需要这样做?那么,出于性能原因,操作系统会尝试缓冲对文件的写入 - 一次写入1024个字节比写出整个缓冲区慢很多。因此,无论何时使用文件/管道/套接字,都要记住它可能是缓冲写入,并且首先需要flush
。
当您关闭文件时,它会自动刷新。
答案 1 :(得分: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