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)  # 无缓冲模式
相关推荐
chilavert31832 分钟前
关于Python 实现接口安全防护:限流、熔断降级与认证授权的深度实践
python·网络安全
能来帮帮蒟蒻吗1 小时前
Python -将MP4文件转为GIF图片
开发语言·python·学习·视频
suoxiao7771 小时前
通过anaconda安装jupyter
ide·python·jupyter
百锦再1 小时前
MK米客方德SD NAND:无人机存储的高效解决方案
人工智能·python·django·sqlite·android studio·无人机·数据库开发
PacosonSWJTU1 小时前
python使用matplotlib画图
开发语言·python·matplotlib
伶俐角少儿编程1 小时前
2023年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析
python·青少年编程·少儿编程·中国电子学会等级考试·中国电子学会
tangjunjun-owen2 小时前
Milvus 2.4 使用详解:从零构建向量数据库并实现搜索功能(Python 实战)
数据库·python·milvus·rag
CryptoRzz2 小时前
印度尼西亚数据源对接技术指南
开发语言·python·websocket·金融·区块链
戌崂石2 小时前
最优化方法Python计算:有约束优化应用——线性可分问题支持向量机
python·机器学习·支持向量机·最优化方法
灏瀚星空4 小时前
基于Python的量化交易实盘部署与风险管理指南
开发语言·python