从字节字符串中压缩内存中的文件

时间:2017-08-14 14:28:47

标签: python python-2.7

目前我正在写一个这样的文件:

with open('derp.bin', 'wb') as f:
    f.write(file_data)

然而,有时这个文件非常大,我需要压缩它,我想减少写入磁盘的次数,并在内存中执行此操作。我知道我可以使用BytesIOZipFile从数据创建一个zip文件。这就是我到目前为止所做的:

zipbuf = io.BytesIO(file_data)
z = zipfile.ZipFile(zipbuf, 'w')
z.close()

with open('derp.zip', 'wb') as f:
    shutil.copyfileobj(zipbuf, f)

如何制作,以便在解压缩zip文件时,内部有原始的derp.bin

1 个答案:

答案 0 :(得分:1)

z = zipfile.ZipFile('derp.bin','w')
z.writestr('derp.zip',file_data,8)
z.close()