将文件压缩到内存并以字节python的形式读取整个存档
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文件压缩到内存并以字节python的形式读取整个存档相关的知识,希望对你有一定的参考价值。
我正在尝试压缩xml文件,然后将存档作为字节读取。目前,我这样做是通过将zip保存到磁盘并将其读回,如下所示:
zipfile.ZipFile('x.zip', mode='w').write('x.xml')
with open('x.zip', "rb") as f:
bytes = f.read()
然而,我不需要zip文件,因此将其保存在磁盘上是一种浪费。我还需要让zip存档与文件同名。任何帮助表示赞赏。
答案
ZipFile
第一个参数可以是文件路径或类文件对象。
你可以通过in-memory buffer
from io import BytesIO
buffer = BytesIO()
zipfile.ZipFile(buffer, mode='w').write('README.md')
buffer.seek(0)
并使用在buffer
模式下打开的b
文件
另一答案
不要打电话给ZipFile.write()
,而是打电话给ZipFile.writestr()
。除非我遗漏了什么,否则我认为这会做你想要的。
以上是关于将文件压缩到内存并以字节python的形式读取整个存档的主要内容,如果未能解决你的问题,请参考以下文章