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)  # 无缓冲模式
相关推荐
Qres8219 分钟前
Rabrg/artificial-life test
python·模拟
财经资讯数据_灵砚智能17 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年5月1日
大数据·人工智能·python·信息可视化·自然语言处理
好奇龙猫30 分钟前
[大学院ーpython-base learning3: python and recommendation system ]
开发语言·python
篮子里的玫瑰38 分钟前
Python与网络爬虫——字典与集合
开发语言·python
skilllite作者1 小时前
Zed 1.0 编辑器深度评测与实战指南
开发语言·人工智能·windows·python·编辑器·agi
2401_882273721 小时前
pattern属性在旧版Android浏览器无效怎么办_手动验证补充【操作】
jvm·数据库·python
贾红平1 小时前
Python装饰器实战指南
python
清水白石0081 小时前
深入 Python 循环引用与垃圾回收:如何应对内存管理的挑战
java·jvm·python
MediaTea1 小时前
人工智能通识课:Scikit-learn 机器学习工具库
人工智能·python·机器学习·scikit-learn
郝学胜-神的一滴1 小时前
二分类任务核心:BCE 损失函数从原理到 PyTorch 实战
人工智能·pytorch·python·算法·机器学习·分类·数据挖掘