如何使用python下载7z文件

Posted

技术标签:

【中文标题】如何使用python下载7z文件【英文标题】:How to download 7z file using python 【发布时间】:2018-07-05 12:43:16 【问题描述】:

我想下载文件,可能是 zip/7z。当我使用以下代码时,它给出了 7z 文件的错误

import requests, zipfile, StringIO

zip_file_url = "http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip"
try:
 r = requests.get(zip_file_url, stream=True)
 z = zipfile.ZipFile(StringIO.StringIO(r.content))
except requests.exceptions.ConnectionError:
 print "Connection refused"

【问题讨论】:

你能把那个 7z 的错误 说一下吗? zipfile.BadZipFile:文件不是 zip 文件 看一看:***.com/questions/3083235/… 【参考方案1】:

请求文件时确保HTTP状态码为200,并以二进制方式写出文件:

import os
import requests

URL = "http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip"
filename = os.path.basename(URL)

response = requests.get(URL, stream=True)

if response.status_code == 200:
    with open(filename, 'wb') as out:
        out.write(response.content)
else:
    print('Request failed: %d' % response.status_code)

如果请求成功,则下载的文件将出现在运行脚本的目录中,或者指示文件无法下载。

【讨论】:

以上是关于如何使用python下载7z文件的主要内容,如果未能解决你的问题,请参考以下文章

7z.001,7z.002这样的文件如何解压

如何打开7z文件?

如何使用 Gin 在 HTTP 服务器中动态生成 zip/7z 存档?

如何读取用 7z 压缩的文本文件?

如何使用 SevenZipSharp 提取多卷 7z 文件?

python 简单备份文件脚本