python文件是怎么调_Python:如何设置文件的缓冲

一、什么是文件的缓冲?

1、说明

将文件内容写入到硬件设备时,比如磁盘的扇区,则需要进行系统调用,这类I/O操作的耗时很长,为了减少I/O操作的次数,文件通常使用缓冲区(当需要写入的字节数不足一个块时,将数据放入缓冲区,当数据凑够一个块的大小后才进行系统调用);

2、文件的缓冲行为:

A、全缓冲:只有当数据凑够一个块时,才进行系统调用(即I/O操作);

B、行缓冲:碰到一个换行符,就进行一次系统调用;(多用于tty设备,也就是终端设备,如shell)

C、无缓冲:不进行缓冲,需要及时的将数据发送到接口;(比如串口设备)

3、备注

系统调用:向操作系统申请一个服务,操作系统响应后,帮助调用硬件的驱动程序,这种操作称为I/O操作;

磁盘扇区:硬盘的内部圆形金属盘片被磁道划分成若干个扇形区域,这就是硬盘扇区。若干个扇区就组成整个盘片,硬盘的读写以扇区为基本单位。

对于磁盘这类的块设备,读写时不是按单个字节进行的,而是按块,每次读写一个块(一般一个块大小4096个字节);如果一个块的大小是4096个字节,则写入一个字节和写入4096个字节,都需要进行一次I/O操作,用时则是相同的;

二、Python中,文件的对象的缓冲行为

# python中普通文件默认的缓冲行为:全缓冲,当凑够一个块的数据(4096个字节,也是缓冲区的大小)后,才进行系统调用(也就是I/O操作);

# 缓冲区的大小,是根据平台(如python)和块设备(如磁盘)自身的属性相关的;

设置缓冲模式,及缓冲区大小:

格式:open(file, 'r', buffering = n/1/0)

A、buffering = n,n > 1 :设定缓冲模式为全缓冲,缓冲区大小为n个字节;

B、buffering = 1:设定缓冲模式为行缓冲,遇到换行符 '\n' 时进行系统调用,也就是I/O操作,将数据写入磁盘;

C、buffering = 0:此为无缓冲你模式,只要有数据,就直接进行系统调用,也就是进行I/O操作,将数据写入磁盘;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值