我正在尝试压缩xml文件,然后以字节为单位读取存档。目前,我是通过将zip文件保存到磁盘并按如下方式读回它来完成此操作的:
zipfile.ZipFile('x.zip', mode='w').write('x.xml')
with open('x.zip', "rb") as f:
bytes = f.read()
但是我不需要zip文件本身,因此将其保存在磁盘上是一种浪费。我还需要使zip存档具有与文件相同的名称。任何帮助表示赞赏。
答案 0 :(得分:0)
ZipFile
的第一个参数可以是文件或类似文件的对象的路径。
您可以像这样传递in-memory buffer
from io import BytesIO
buffer = BytesIO()
zipfile.ZipFile(buffer, mode='w').write('README.md')
buffer.seek(0)
并像在buffer
模式下打开的文件一样使用b
答案 1 :(得分:0)
致电ZipFile.write()
,而不是致电ZipFile.writestr()
。除非我缺少任何东西,否则我认为它将满足您的要求。