默认情况下缓冲文件对象; 除非您编写足够的数据来填充缓冲区,否则在文件刷新或关闭(隐式刷新)之前,它不会写入文件.这样做是为了避免对小写进行大量(昂贵的)系统调用.您可以随时通过致电强制冲洗fileobj.flush()
.
其他一些注意事项:如果目标是打开读/写并截断文件,只需打开模式'w+'
,而不是'r+'
后跟truncate()
.其次,使用with
语句,因此您不会意外地无法关闭文件(通过省略close
,或由于抛出异常而绕过它).例:
with open(filename, "w+") as file_ob: # Don't need to truncate thanks to w+ # Do writes/reads, with explicit flushes if needed # When block exited by any means, file is flushed and closed automatically