使用tqdm实现下载文件进度条

1、获取下载链接

下载链接为:http://fastsoft.onlinedown.net/down/Fcloudmusicsetup2.5.5.197764.exe

2、使用tqdm实现

  • 2.1、从response的headers中获取文件大小,同时注意:get请求中#stream=True参数的作用是仅让响应头被下载,连接保持打开状态
  • 2.2、以wb模式打开文件
  • 2.3、使用注意调用iter_content,一块一块的遍历要下载的内容,搭配stream=True,此时才开始真正的下载

原始代码:模板

 1 import requests
 2 from tqdm import tqdm
 3 
 4 def downloadFILE(url,name):
 5     resp = requests.get(url=url,stream=True)
 6     #stream=True的作用是仅让响应头被下载,连接保持打开状态,
 7     content_size = int(resp.headers['Content-Length'])/1024        #确定整个安装包的大小
 8     with open(name, "wb") as f:
 9         print "安装包整个大小是:",content_size,'k,开始下载...'
10         for data in tqdm(iterable=resp.iter_content(1024),total=content_size,unit='k',desc=name):
11     #调用iter_content,一块一块的遍历要下载的内容,搭配stream=True,此时才开始真正的下载
12     #iterable:可迭代的进度条 total:总的迭代次数 desc:进度条的前缀
13             f.write(data)
14         print name + "已经下载完毕!"
15 
16 if __name__ == '__main__':
17     url = "需要下载的文件的地址"
18     name = url.split('/')[-1]        #截取整个url最后一段即文件名
19     downloadFILE(url,name)

 

优化代码:

 1 from tqdm import tqdm
 2 import time,requests
 3 
 4 def downloadFILE(url,name):
 5     resp = requests.get(url=url,stream=True)
 6     content_size = int(resp.headers['Content-Length'])/1024
 7     with open(name, "wb") as f:
 8         print("Pkg total size is:",content_size,'k,start...')
 9         for data in tqdm(iterable=resp.iter_content(1024),total=content_size,unit='k',desc=name):
10             f.write(data)
11         print(name + "download finished!")
12 if __name__ == '__main__':
13     url = "http://fastsoft.onlinedown.net/down/Fcloudmusicsetup2.5.5.197764.exe"
14     name = url.split('/')[-1]
15     downloadFILE(url,name)

效果:在jupyter中

下载的文件:

双击下载的文件:

证明下载的文件没问题!

 

转载于:https://www.cnblogs.com/phyger/p/11370923.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值