【python】类file文件处理
【flush方法】
通常由于缓冲,write不将数据写入文件,而是写入内存的缓冲区,需要使用flush写入文件,并清空缓冲区
文件的flush方法的作用是强制清空缓存写入文件。默认每行flush一下???
如果缓冲区满了,也会自动写入。
close()之前先flush()
如果因为意外原因没有close(),那缓冲区的内容就丢失啦。
【os.fsync】
为了确保写入硬盘,file.flush()之后要调用os.fsync()
有时,调用了flush却没有写入硬盘,python文档回答了这个问题。
是因为有两个层面的buffering
1、internal buffers
2、operating system buffers
【buffering】
在open文件的时候可以指定参数buffering,
设为0: 无buffer
设为1:buffer line
设为大于1整数:buffer大小
设为-1:系统默认的缓冲大小