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

Python 从字节字符串压缩内存中的文件,python,python-2.7,Python,Python 2.7,目前,我正在编写一个如下文件: 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(

目前,我正在编写一个如下文件:

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文件时,在我的python中的列表中有原始的derp.bin,文件名需要颠倒:z=zipfile.zipfile'derp.zip',w'和z.writest'derp.bin',文件数据,8而不是写入的数据。
z = zipfile.ZipFile('derp.bin','w')
z.writestr('derp.zip',file_data,8)
z.close()