如何用Python获取tar文件缓冲区而不写入本地文件?
获取tar打包后的内存缓冲区实现方法
你可以通过使用Python的io.BytesIO作为内存中的文件对象,替代实际的文件路径传递给tarfile.open(),这样就能直接在内存中生成tar包内容,而无需创建物理文件。
具体实现代码如下:
import io import tarfile # 初始化一个BytesIO对象作为内存缓冲区 tar_buffer = io.BytesIO() # 以缓冲区为目标创建tar包(保持原有的xz压缩格式) with tarfile.open(fileobj=tar_buffer, mode='w:xz') as tar: tar.add('Pic.jpeg') # 获取打包后的二进制数据 compressed_data = tar_buffer.getvalue() # 后续可将compressed_data用于网络传输、内存存储等场景
关键说明:
io.BytesIO是一个内存中的二进制流对象,模拟了文件的读写接口,适合用来临时存储数据。- 调用
tar_buffer.getvalue()可以直接获取缓冲区中的所有二进制内容,无需调整指针位置;如果之后需要再次读取缓冲区,可调用tar_buffer.seek(0)将指针重置到起始位置。
内容的提问来源于stack exchange,提问作者Kokomelom
相关产品推荐
相关产品推荐

