python 写文件时刷新缓冲区
什么是刷新缓冲区
python写文件操作并不会立即将内容写到磁盘,而是写到了操作系统的缓冲区,由操作系统决定何时写入磁盘。
主动强制让缓冲区的内容写入磁盘,称为刷新缓冲区。
- 不主动刷新缓冲区,可以减少与磁盘间的IO, 提高操作效率
- 不主动刷新缓冲区,在程序崩溃,子进程退出(待进一步考证)等情况下,会造成部分数据没写到磁盘。
- 主动刷新缓冲区过于频繁,会降低效率。
方法
方法1:将文件对象f内部缓冲区的数据写入磁盘。
f.flush()
方法2:os.fsync(file.fileno()) 会强制将文件描述符 file.fileno() 关联的文件的所有已缓冲数据写入磁盘
os.fsync(f.fileno())
它会刷新操作系统内核缓冲区,它更偏底层,效率更高,但可移植性差(?)
两种方法都不能保证绝对的数据安全(硬件故障)。
浙公网安备 33010602011771号