python - 使用 Cherry Py 在 python 中创建 zip 文件流?

标签 python zip cherrypy

我想动态创建一个 zip 文件,以便通过 Cherry Py 为用户提供服务:我尝试了以下代码,但生成了无效的 zip 文件:

@cherrypy.expose
def ZipDir(self, *args):
    path = "\\".join(args)
    output = StringIO.StringIO()
    file = zipfile.ZipFile(output, "w")

    zip_filename = path + ".zip"

    cherrypy.response.headers['Content-Type'] = 'application/zip'
    cherrypy.response.headers['Content-Disposition'] = 'attachment; filename="%s"' % (zip_filename,)
    dir = filter(lambda x: x.lower().endswith(".mp3") or not ("." in x), os.listdir("G:\\Music\\" + path))
    for f in dir:
        file.write("G:\\Music\\" + path + "\\" + f,f,zipfile.ZIP_DEFLATED)
    return output.getvalue()

文件大小看起来差不多,但它没有在任何 acrhicing 应用程序中注册为 zip 文件。

最佳答案

我忘记在返回之前调用 file.close() 。这解决了它!

关于python - 使用 Cherry Py 在 python 中创建 zip 文件流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10792008/

相关文章:

python - 消除列表中重复项但保持先前相对顺序的最佳方法

python - 这个多线程函数是异步的吗

Python Flask 电子邮件表单示例

python - 使用python提取zip文件

python - Beaker 缓存性能指南

javascript - 在 JavaScript 中反序列化字典的 JSON 列表

python - 如何读取其中包含 1Ah 字符的文本文件?

windows - Windows 的内置 ZIP 压缩可以编写脚本吗?

php - 在不使用 ziparchive 的情况下在 php 中创建一个 zip 文件

javascript - 使用 cherrypy 下载文件