python - 如何使用python下载7z文件
问题描述
我想下载文件,可能是 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"
解决方案
只需确保请求文件时 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 - 将 mongoDB 链接到 python 代码?
- javascript - react navigator react-native-sectioned-multi-select 如何转换成数组项
- python - 使用 Python3 和 SQLlite 存储字典数据
- c# - 显示对象名称,并添加到列表
- json - 在我的 Django 后端接收来自 ReactJS 的 JSON 对象
- firebase - Firebase 基于角色的授权
- python - 如何在 SqlAlchemy 中使用 pandas 进行 upsert
- python - 如何从 pandas DataFrame 列中提取美元金额
- excel - 在 64 位 Excel 中从 VBA 编写注册表
- c# - C# - 如何绘制具有 3 个变量的图表(Position[32]、ByteValue[255]、Frequency[int])