Python文件缓冲机制

buffer

默认缓冲是4字节(B)即 4096

磁盘的读写

在了解缓冲之前现有了解磁盘这类的块设备读写原理,磁盘的读写是按照块来的,例如说 一个块的存储空间大小为4096B,那么写入1B和写入4096B所需要的时间是相同的,都需要进行一次I/O,这么看来 当我们的文件写入 小于块的空间大小时候 就会进行多次的I/O操作,我们都知道I/O操作会耗费性能,所以伟大的科学家们就想了一个办法,设置一个缓冲区,当缓冲区里面达到块大小的时候才进行I/O操作将缓冲区的数据写入。

Python缓冲区的分类

  1. 全缓冲
  2. 行缓冲
  3. 无缓冲

什么是全缓冲?

我们设置缓冲区的大小,例如设置成 1024B,当达到这个大小的时候就会调用flush()函数,进行一次I/O操作,这种模式适用于大量数据的批量写入,减少磁盘写入次数,提高效率。

python 复制代码
file = open('example.txt', 'w', buffering=4096)  # 使用4KB缓冲

什么是行缓冲?

每次遇到换行符("\n")的时候就调用flush()函数,进行一次I/O操作;适用于以行为单位进行数据写入,确保每一行数据都能及时刷新到磁盘

python 复制代码
file = open('example.txt', 'w', buffering=1)  # 行缓冲模式

什么是无缓冲?

有数据进来就进行I/O操作,确保实时数据写入。

python 复制代码
file = open('example.txt', 'w', buffering=0)  # 无缓冲模式
相关推荐
程序员爱钓鱼6 小时前
Python编程实战 · 基础入门篇 | 类型转换与输入输出
后端·python
程序员爱钓鱼6 小时前
Python编程实战 · 基础入门篇 | 运算符详解
后端·python·编程语言
潜心编码6 小时前
基于Flask的志愿者管理系统
后端·python·flask
开心-开心急了7 小时前
Flask入门教程——李辉 第四章 静态文件 关键知识梳理 更新1次
后端·python·flask
应用市场14 小时前
构建自定义命令行工具 - 打造专属指令体
开发语言·windows·python
东方佑14 小时前
从字符串中提取重复子串的Python算法解析
windows·python·算法
Dfreedom.15 小时前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生15 小时前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
叶子丶苏16 小时前
第八节_PySide6基本窗口控件_按钮类控件(QAbstractButton)
python·pyqt
百锦再16 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven