案例:
将文件内容写入到硬件设备时候,使用系统调用,这类IO操作时间长,为了减小IO操作,通常会使用缓冲区(有足够多数据才能调用)。
文件缓冲行为分为:全缓冲,行缓冲,无缓冲
如何解决?
open(‘’, ‘’, buffering = a) # buffering设置缓冲行为
全缓冲: a 是正整数,当缓冲区文件大小达到a大小时候,写入磁盘
行缓冲: buffering = 1, 缓冲区碰到 \n 换行符的时候就写入磁盘
无缓冲:buffering = 0 ,写多少,存多少
#!/usr/bin/python3
# 设置定长缓冲区
with open('test.text', 'w+', encoding='utf-8', buffering=20) as f:
f.write('hello word!')
f.write('定个小目标,挣它一个亿')
f.write('are you ok')
# 设置行缓冲
with open('test_1.text', 'w+', encoding='utf-8', buffering=1) as f:
f.write('hello word!\n')
f.write('定个小目标,挣它一个亿\n')
f.write('are you ok\n')
#设置无缓冲
# 注意,text文件类型必须要写缓冲区
with open('test_2.text', 'wb+', buffering=0) as f:
f.write(b'hello word!\n')
f.write(b'are you ok')