python从已打开的文件中获取数据

时间:2012-06-05 14:26:55

标签: python file inputstream

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

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

2 个答案:

答案 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