requests实现文件下载, 期间显示文件信息&下载进度_python3
requests实现文件下载, 期间显示文件信息&下载进度
"""使用模块线程方式实现网络资源的下载
# 实现文件下载, 期间显示文件信息&下载进度
# 控制台运行以显示进度
"""
import requests
import os.path as op
import os
from sys import stdout
def downloadfile(url, filename):
"""下载文件并显示过程
:param url: 资源地址
:param filename: 保存的名字, 保存在当前目录
"""
# print(url)
filename = filename + '.' + op.splitext(url)[-1]
file_to_save = op.join(os.getcwd(), filename)
# print(file_to_save)
with open(file_to_save, "wb") as fw:
with requests.get(url, stream=True) as r:
# 此时只有响应头被下载
# print(r.headers)
print("下载文件基本信息:")
print('-' * 30)
print("文件名称:", filename)
print("文件类型:", r.headers["Content-Type"])
filesize = r.headers["Content-Length"]
print("文件大小:", filesize, "bytes")
print("下载地址:", url)
print("保存路径:", file_to_save)
print('-' * 30)
print("开始下载")
chunk_size = 128
times = int(filesize) // chunk_size
show = 1 / times
show2 = 1 / times
start = 1
for chunk in r.iter_content(chunk_size):
fw.write(chunk)
if start <= times:
stdout.write(f"下载进度: {show:.2%}\r")
start += 1
show += show2
else:
stdout.write("下载进度: 100%")
print("\n结束下载")
if __name__ == "__main__":
downloadfile("https://code.jquery.com/jquery-3.4.1.js", "a")
requests实现文件下载, 期间显示文件信息&下载进度_python3的更多相关文章
- 使用AsyncTask实现文件下载并且在状态中显示下载进度
2013年10月24日 上班的第二天 昨天我是用afinal完成的则个功能,但是公司里并不希望使用第三方的代码,所以要求我在不使用第三方开源项目的情况下实现. 最先我是使用Thread开启一个子线程, ...
- 使用NSURLSessionDownloadTask实现大文件下载-监听下载进度
- 5.1 涉及知识点(1)创建NSURLSession并设置代理,通过NSURLSessionDownloadTask并以代理的方式来完成大文件的下载 //1.创建NSURLSession,设置代理 ...
- Android开发之文件下载,状态时显示下载进度,点击自动安装
在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载,并在状态栏显示下载进度,下载完成后,点击触发安装. 效果如图: 用于下载文件和显示现在进度的线程类如下: [java] view pl ...
- urlretrieve 如何给文件下载设置下载进度?
#python #xiaodeng #如何给文件下载设置下载进度? import urllib def callbackinfo(down,block,size): ''' 回调函数: down:已经 ...
- 使用Typescript重构axios(二十五)——文件上传下载进度监控
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- RxHttp 完美适配Android 10/11 上传/下载/进度监听
1.前言 随着Android 11的正式发布,适配Android 10/11 分区存储就更加的迫切了,因为Android 11开始,将强制开启分区存储,我们就无法再以绝对路径的方式去读写非沙盒目录下的 ...
- CodePush自定义更新弹框及下载进度条
CodePush 热更新之自定义更新弹框及下载进度 先来几张弹框效果图 非强制更新场景 image 强制更新场景 image 更新包下载进度效果 image 核心代码 这里的热更新Modal框,是封装 ...
- [Swift通天遁地]四、网络和线程-(8)下载图片并实时显示下载进度
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)
ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...
随机推荐
- HGOI20190808 省常中互测1
Problem A sum 给出$n$个元素的序列$\{a_i\}$,求出两个不相交连续子序列的最大元素和. 即对于$1 \leq A \leq B \leq C \leq D \leq n$最大化 ...
- 【HDOJ5447】Good Numbers(数论)
题意: 思路:From https://blog.csdn.net/qq_36553623/article/details/76683438 大概就是把1e6里面的质因子能除的都除光之后借助两者gcd ...
- python学习之路(11)
切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> list=['zh','cn','sqlmap','nmap','znamp'] 取前3 ...
- eclipse中把选中的代码全部变成大写或者小写的快捷键
Ctrl+shift+x是把选中的变成大写 Ctrl+shift+y是把选中的变成小写
- 20175212童皓桢 《Java程序设计》第11周学习总结
20175212童皓桢 <Java程序设计>第11周学习总结 教材学习内容总结 一.URL类 1.一个URL对象通常包含最基本的三部分信息:协议.地址.资源 2.构造方法: public ...
- What is the !! (not not) operator in JavaScript?
What is the !! (not not) operator in JavaScript? 解答1 Coerces强制 oObject to boolean. If it was falsey ...
- 解决phpmyadmin出现: Maximum execution time of 300
在mysql用phpmyadmin导入数据的时候出现: Fatal error: Maximum execution time of 300 seconds exceeded in ... 上网查了很 ...
- ad2014注册出现:注册 - 激活错误 (0015.111)
将安装包内的(adlmact.dll & adlmact_libFNP.dll)这两个文件取出并覆盖即可.安装包内文件具体位置:在安装包内搜索“adlmact”出现的两个文件“adlmact_ ...
- TCP/IP,Http,Socket的区别
大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用 ...
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_1 今日课程内容介绍