• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

工具践习

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

python 写文件时刷新缓冲区

什么是刷新缓冲区

python写文件操作并不会立即将内容写到磁盘,而是写到了操作系统的缓冲区,由操作系统决定何时写入磁盘。
主动强制让缓冲区的内容写入磁盘,称为刷新缓冲区。

  1. 不主动刷新缓冲区,可以减少与磁盘间的IO, 提高操作效率
  2. 不主动刷新缓冲区,在程序崩溃,子进程退出(待进一步考证)等情况下,会造成部分数据没写到磁盘。
  3. 主动刷新缓冲区过于频繁,会降低效率。

方法

方法1:将文件对象f内部缓冲区的数据写入磁盘。
f.flush()

方法2:os.fsync(file.fileno()) 会强制将文件描述符 file.fileno() 关联的文件的所有已缓冲数据写入磁盘
os.fsync(f.fileno())
它会刷新操作系统内核缓冲区,它更偏底层,效率更高,但可移植性差(?)

两种方法都不能保证绝对的数据安全(硬件故障)。

posted on 2024-06-08 00:54  追梦的蒲公英  阅读(46)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3