python从请求中下载zip文件

k0pti3hp  于 2022-11-21  发布在  Python
关注(0)|答案(2)|浏览(250)

我用的是Python 3.9.5版。我正在写一个脚本从浏览器下载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文件,而不是提取文件。

bnl4lu3b

bnl4lu3b1#

如果您不需要查看zip文件内部,则不需要任何zip感知代码来下载它-您只需要将响应数据保存到文件中。
这里有一个很好的例子:https://stackoverflow.com/a/16696317/3811862

k75qkfdt

k75qkfdt2#

# 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评论

相关问题