Python 3:使用内存 Xml 创建内存 Zipfile

Posted

技术标签:

【中文标题】Python 3:使用内存 Xml 创建内存 Zipfile【英文标题】:Python 3: create in-memory Zipfile with in-memory Xml 【发布时间】:2020-09-14 08:22:45 【问题描述】:

我正在尝试使用 io.StringIO() 创建 xml 文件并将其打包到 ZipFile 中,但输出是一个空的 zip 文件。哪里出错了?

string_xml_buffer = io.StringIO()
string_xml_buffer.write('<MyContent>')
string_xml_buffer.write('</MyContent>')
bytes_zip_buffer = io.BytesIO()
zf = ZipFile(bytes_zip_buffer, mode = 'w')
zf.writestr('filename.xml', string_xml_buffer.getvalue())

# Django response
response = HttpResponse(zf, content_type='application/zip')
response['Content-Disposition'] = 'attachment; filename="f.zip"'
return response

【问题讨论】:

【参考方案1】:

问题在于缺少zf.close()。使用这一行代码效果很好。

【讨论】:

以上是关于Python 3:使用内存 Xml 创建内存 Zipfile的主要内容,如果未能解决你的问题,请参考以下文章

解析XML后,Python不会释放内存

java继承小题二

STM32 zi_data大于ram空间值,程序为啥能正常运行

Python 3使用lxml编写大型(300+ mb)XML

在内存中创建一个 Zip 文件

2017/4/26-DOM解析XML文件