0 字节 Zip 存档
0 byte Zip-Archive
我有一个包含 Word 文档和 PDF 文档的 URL 列表。
我想获取所有这些并创建一个包含所有文档的 zip 文件,然后可以下载该文件(Creating a Flask Response with application/zip mime-type)。
我有以下代码,它只有 return 一个 0 字节的压缩文件:
allLinks = [...]
for link in allLinks:
with zipfile.ZipFile('Documents.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zip:
response = requests.get(link, headers=headers, stream=True)
filename = urllib.parse.unquote(response.headers.get('content- disposition').replace("attachment; filename*=UTF-8", "").replace("''", "").encode('latin-1').decode('utf-8'))
if response.status_code == 200:
zip.writestr(filename, response.content)
return zip
zip 文件不包含任何内容。我认为 return 语句很快被转发到。我虽然使用线程,但我不太确定这是否是解决方案以及如何进行。
你正在用 mode='w'
覆盖每个迭代 pening 所以如果最后一个 url 没有 return 200 你得到一个空的 zip 文件,最好你只得到最后一个 zip.writestr
.
在循环外打开:
allLinks = [...]
with zipfile.ZipFile('Documents.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zp:
for link in allLinks:
我有一个包含 Word 文档和 PDF 文档的 URL 列表。 我想获取所有这些并创建一个包含所有文档的 zip 文件,然后可以下载该文件(Creating a Flask Response with application/zip mime-type)。 我有以下代码,它只有 return 一个 0 字节的压缩文件:
allLinks = [...]
for link in allLinks:
with zipfile.ZipFile('Documents.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zip:
response = requests.get(link, headers=headers, stream=True)
filename = urllib.parse.unquote(response.headers.get('content- disposition').replace("attachment; filename*=UTF-8", "").replace("''", "").encode('latin-1').decode('utf-8'))
if response.status_code == 200:
zip.writestr(filename, response.content)
return zip
zip 文件不包含任何内容。我认为 return 语句很快被转发到。我虽然使用线程,但我不太确定这是否是解决方案以及如何进行。
你正在用 mode='w'
覆盖每个迭代 pening 所以如果最后一个 url 没有 return 200 你得到一个空的 zip 文件,最好你只得到最后一个 zip.writestr
.
在循环外打开:
allLinks = [...]
with zipfile.ZipFile('Documents.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zp:
for link in allLinks: