介绍
这篇文章主要介绍”Python怎么实现下载时显示进度条和时间功能”,在日常操作中,相信很多人在Python怎么实现下载时显示进度条和时间功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“Python怎么实现下载时显示进度条和时间功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
大家在下载文件时能够显示下载进度和时间非常好,其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了。
该模块调用了三个库:
1。操作系统2。3.请求时间
引用>话不多说,先上代码! ! !
#,进度条模块 def progressbar (url路径): ,if not  os.path.exists(路径):,#,看是否有该文件夹,没有则创建文件夹 os.mkdir才能(路径)=,,start  time.time(), #下载开始时间=,,response  requests.get (url,流=True), #流=True必须写上 ,size =, 0, #初始化已下载大小 1024年,chunk_size =,, #,每次下载的数据大?,content_size , int (response.headers[& # 39;内容长度# 39;]),#,下载文件总大小 ,试一试:==,if response.status_code 200年,#判断是否响应成功 打印才能(& # 39;Start 下载,[File 大小]:{大小:.2f}, mb # 39; .format (=size content_size /, chunk_size /1024)), #开始下载,显示下载文件大小 时间=filepath 才能;路径+ & # 39;\ name.extension 名字# 39;,#设置图片名字,注:必须加上扩展名 with 才能打开(filepath & # 39; wb # 39;), as 文件:,#显示进度条 for 才能;data 拷贝response.iter_content (=chunk_size chunk_size): ,,file.write(数据) ,,size +=len(数据) ,才能打印(& # 39;\ " # 39;+ & # 39;[下载进度):% s % .2f % % & # 39;, %,(& # 39;祝辞& # 39;* int(大小* 50/,content_size),,浮子(时间/size content_size *, 100)),,结束=& # 39;,& # 39;) ,最终获得=,time.time(), #下载结束时间 ,打印(& # 39;Download 完成!,:,% .2f秒& # 39;,%,(最终获得;安康;开始),#输出下载用时时间 以前,除了:>实现原理其实很简单,我们一般下载东西使用的<代码> requests.get (url) .content> 代码的方法下载来的文件是二进制文件,我们只要通过对循环每次下载1024 kb,到最后获取文件的总大小,即可完成我们的功能实现了!。
通过上面这个函数我们就实现了简单的进度条以及所需时间的功能,我们用了两个参数,我们下载个皮卡丘图片来试试效果:
效果还不错~ ~注:[下载进度)后面”的祝辞& # 39;是有动态显示的,这里可能看不到,可以在自己的环境下测试看看! !
实例代码:
import 操作系统 import 请求 import 时间 #,进度条模块 def progressbar (url路径): ,if not  os.path.exists(路径):,#,看是否有该文件夹,没有则创建文件夹 os.mkdir才能(路径)=,,start  time.time(), #下载开始时间=,,response  requests.get (url,流=True) ,size =, 0, #初始化已下载大小 1024年,chunk_size =,, #,每次下载的数据大?,content_size , int (response.headers[& # 39;内容长度# 39;]),#,下载文件总大小 ,试一试:==,if response.status_code 200年,#判断是否响应成功 打印才能(& # 39;Start 下载,[File 大小]:{大小:.2f}, mb # 39; .format (=size content_size /, chunk_size /1024)), #开始下载,显示下载文件大小 时间=filepath 才能;路径+ & # 39;\ Pikachu.jpg& # 39;, #设置图片名字,注:必须加上扩展名 with 才能打开(filepath & # 39; wb # 39;), as 文件:,#显示进度条 for 才能;data 拷贝response.iter_content (=chunk_size chunk_size): ,,file.write(数据) ,,size +=len(数据) ,才能打印(& # 39;\ " # 39;+ & # 39;[下载进度):% s % .2f % % & # 39;, %,(& # 39;祝辞& # 39;* int(大小* 50/,content_size),,浮子(时间/size content_size *, 100)),,结束=& # 39;,& # 39;) ,最终获得=,time.time(), #下载结束时间 ,打印(& # 39;Download 完成!,:,% .2f秒& # 39;,%,(最终获得;安康;开始),#输出下载用时时间 ,除了: ,打印(& # 39;错误! & # 39;) def main (): ,#下载皮卡丘图片=,url & # 39; https://img.moegirl.org/common/thumb/e/ed/%E7%9A%AE%E5%8D%A1%E4%B8%98%E4%B9%8B%E6%AD%8C.jpg/1200px-%E7%9A%AE%E5%8D%A1%E4%B8%98%E4%B9%8B%E6%AD%8C.jpg& # 39;=,path " # 39; E: \ 123 & # 39;, #,设置下载到本地的地址 ,progressbar (url路径) if __name__ ==, & # 39; __main__ # 39;: 以前,main ()Python怎么实现下载时显示进度条和时间功能