python 从请求下载 zip 文件

问题描述 投票:0回答:2

我使用的是Python 3.9.5版本。我正在编写一个 python 脚本来从浏览器下载 zip 文件。这是代码。如果我从 zip 文件中提取所有文件,它就可以正常工作。但我只想下载包含所有内部文件的主 zip 文件。 我该怎么做? Zipfile.write() 不起作用。

import requests
import os 
import json
from robot.api.deco import keyword
import zipfile, io


def download_file(url):
    headers=   {"Auth": "{abcd}", 
                "accept": "*/*",               
               "accept-encoding": "gzip;deflate;br" }
    response = requests.request("GET", url, headers = headers)
    
    
    filename = os.getcwd()+'/downloads/'
        
    z = zipfile.ZipFile(io.BytesIO(response.content))
    
    z.extractall(filename)            
    
    return response.status_code

这段代码工作得很好,但我只想下载主 zip 文件而不是解压文件。

python python-requests zip
2个回答
0
投票

如果您不需要查看 zip 文件内部,则不需要任何 zip 感知代码来下载它 - 您只需将响应数据保存到文件中即可。

这里有一个很好的例子:https://stackoverflow.com/a/16696317/3811862


0
投票
# remove these 2 lines which extract zip
z = zipfile.ZipFile(io.BytesIO(response.content))
z.extractall(filename)

# add these saves zip file
with open(filename, "w") as f:
  f.write(response.content)

已编辑:感谢

with
评论

© www.soinside.com 2019 - 2024. All rights reserved.