gpt4 book ai didi

python - 在 tornado.web 中提供一个 zip 文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:47 25 4
gpt4 key购买 nike

我是 tornado 的新手,我需要提供一个 zip 文件(由 python 制作)。

所以我将这些代码行添加到我的脚本中,找到了here :

        zipname="clients_counter.zip"
zf = zipfile.ZipFile(zipname, "w")
for dirname, subdirs, files in os.walk("tozip"):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()
self.set_header('Content-Type', 'application/zip')
self.write(zipname.getvalue())
self.finish()

结果这只是给我一个白页,它没有开始下载。谁有更好的建议来实现我的目标?

最佳答案

如果你想将 zip 文件即时发送到浏览器(而不保存到本地文件系统),试试这个:

from io import BytesIO
zipname="clients_counter.zip"
f=BytesIO()
zf = zipfile.ZipFile(f, "w")
for dirname, subdirs, files in os.walk("tozip"):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()
self.set_header('Content-Type', 'application/zip')
self.set_header("Content-Disposition", "attachment; filename=%s" % zipname)
self.write(f.getvalue())
f.close()
self.finish()

BytesIO 对象是 zip 文件所在的位置,而 zipname 只是发送到客户端浏览器的名称。

关于python - 在 tornado.web 中提供一个 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20396918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com