Python3中无需显式读取即可将二进制流缓冲区写入文件的方法
实现二进制流缓冲区写入文件的方案
推荐方案:使用Python标准库shutil.copyfileobj
该方案无需依赖第三方包,是Python原生提供的类文件对象拷贝工具,全程不需要显式调用read()方法读取缓冲区内容。
示例代码
import io import shutil read_buffer = io.BytesIO(b'buffer bytes content') # 如果缓冲区指针不在起始位置,需要先重置指针 read_buffer.seek(0) with open('target_file', 'wb') as file: shutil.copyfileobj(read_buffer, file)
说明
shutil.copyfileobj会自动处理流的读取、写入逻辑,原生支持io.BufferedReader、io.BytesIO等所有符合Python类文件对象协议的输入流,完全适配需求。- 可通过第三个参数指定单次拷贝的缓冲区大小,例如
shutil.copyfileobj(read_buffer, file, length=1024*1024)即设置每次读写1MB数据,适合处理大容量流,避免内存占用过高。
内容的提问来源于stack exchange,提问作者Eido95
相关产品推荐
相关产品推荐

