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)  # 无缓冲模式
相关推荐
天草二十六_简村人3 分钟前
jenkins打包制作Python镜像,并推送至docker仓库,部署到k8s
后端·python·docker·容器·kubernetes·jenkins
weixin_457760004 分钟前
GIOU (Generalized Intersection over Union) 详解
pytorch·python
汐ya~5 分钟前
Cursor连接异常问题“Model not available/connection failed”解决:IDE内置代理配置,无需全局流量代理与虚拟网卡
python·编辑器·cursor
海市公约11 分钟前
Python操作SQLite数据库:从基础语法到完整项目实战
数据库·ide·python·程序人生·架构·pycharm·sqlite
轻竹办公PPT11 分钟前
学校要求开题报告 PPT,有没有模板?
人工智能·python·powerpoint
神奇的代码在哪里27 分钟前
C++的演进与我的编程学习之旅:从底层基础到AI应用
c++·人工智能·python·学习·程序人生·个人开发
lanbo_ai30 分钟前
基于深度学习的宠物猫品种识别系统,resnet50,alexnet,mobilenet【pytorch框架,python代码】
人工智能·pytorch·python·深度学习·cnn
Kyln.Wu34 分钟前
【python实用小脚本-315】跨界应用 | 烹饪爱好者如何用Python改造传统选菜流程?自然语言处理×美食推荐的化学反应,轻松实现AI菜谱生成
人工智能·python·自然语言处理
起来_敲代码39 分钟前
super()调用和父类名调用的区别
python
YuSun_WK40 分钟前
检索增强VS知识蒸馏VS伪标签扩展
人工智能·python