目前我正在写一个这样的文件:
with open('derp.bin', 'wb') as f:
f.write(file_data)
然而,有时这个文件非常大,我需要压缩它,我想减少写入磁盘的次数,并在内存中执行此操作。我知道我可以使用BytesIO
和ZipFile
从数据创建一个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
答案 0 :(得分:1)
z = zipfile.ZipFile('derp.bin','w')
z.writestr('derp.zip',file_data,8)
z.close()