将文件压缩到内存并以字节python的形式读取整个存档

问题描述 投票:1回答:2

我正在尝试压缩xml文件,然后将存档作为字节读取。目前,我这样做是通过将zip保存到磁盘并将其读回,如下所示:

zipfile.ZipFile('x.zip', mode='w').write('x.xml')
with open('x.zip', "rb") as f:
    bytes = f.read()

然而,我不需要zip文件,因此将其保存在磁盘上是一种浪费。我还需要让zip存档与文件同名。任何帮助表示赞赏。

python zip zipfile
2个回答
0
投票

ZipFile第一个参数可以是文件路径或类文件对象。

你可以通过in-memory buffer

from io import BytesIO
buffer = BytesIO()
zipfile.ZipFile(buffer, mode='w').write('README.md')
buffer.seek(0)

并使用在buffer模式下打开的b文件


0
投票

不要打电话给ZipFile.write(),而是打电话给ZipFile.writestr()。除非我遗漏了什么,否则我认为这会做你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.