设置文件缓冲

将文件内容写入硬盘的时候会进行系统调用,这类调用的I/O时间比较长,为了减少I/O次数,可以设置文件缓冲区,即达到足够多的数据量的时候才进行磁盘的写入操作。一般缓冲分为:全缓冲、无缓冲、行缓冲。

全缓冲


默认情况下,python文件写入采用全缓冲,大小4096字节。即前4096个字节的信息都会写在缓冲区中,当第4097个字节写入的时候,会把之前的4096个字节通过系统调用写入文件。

f = open('test.txt', 'w')
f.write('+' * 4096)
'''这个时候看文件内容还没有写入'''

f.write('*')
'''这是第4097个字节,此时前4096个字节的信息已写入文件'''

同样,可以自定义缓冲区的大小:

f = open('test2.txt', 'w', buffering=2048)
f.write('+'* 2048)
f.wrtte('-')

无缓冲


当需要将程序产生的信息实时写入文件中,就需要设置无缓冲的模式:

f = open('test3.txt', 'w', buffering=0)
f.write('abc')
f.write('123')

将buffering设置为0,即表示设置为无缓冲模式,f.write()数据将实时写入文件中。

行缓冲


行缓冲是每当遇到一个换行符的时候才进行系统调用,将缓冲区的内容写入文件中:

f = open('test5.txt', 'w', buffering=1)
f.write('123')
f.write('\n')
f.write('abc\n')

将buffering设置为1即表示设置为行缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值