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

Але*_*еев 2 python inputstream file

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

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

Dar*_*mas 5

您可以先尝试清除数据:

f.flush()
Run Code Online (Sandbox Code Playgroud)

你为什么要这样做?那么,出于性能原因,操作系统会尝试缓冲对文件的写入 - 一次写入1024个字节比写出整个缓冲区慢很多.因此,每当您使用文件/管道/套接字时,请记住它可能是缓冲写入,您需要flush先进行.

关闭文件后,它会自动刷新.