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,此时才开始真正的下载

原始代码:模板

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

优化代码:

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

效果:在jupyter中

下载的文件:

双击下载的文件:

证明下载的文件没问题!

使用tqdm实现下载文件进度条的更多相关文章

  1. 使用 new XMLHttpRequest() 制作下载文件进度条

    mui 进度控件使用方法: 检查当前容器(container控件)自身是否包含.mui-progressbar类: 当前容器包含.mui-progressbar类,则以当前容器为目标控件,直接显示进度 ...

  2. python实现socket上传下载文件-进度条显示

    在python的socket编程中,可以实现上传下载文件,并且在下载的时候,显示进度条,具体的流程如下图所示: 1. 服务器端代码如下: [root@python 519]# cat server.p ...

  3. iOS之UI--Quartz2D的入门应用--重绘下载圆形进度条

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  4. node实现http上传文件进度条 -我们到底能走多远系列(37)

    我们到底能走多远系列(37) 扯淡: 又到了一年一度的跳槽季,相信你一定准备好了,每每跳槽,总有好多的路让你选,我们的未来也正是这一个个选择机会组合起来的结果,所以尽可能的找出自己想要的是什么再做决定 ...

  5. Ajax上传文件进度条显示

    要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显 ...

  6. AFHTTPSessionManager下载文件 及下载中 进度条处理,进度条处理需要特别注意,要加载NSRunLoop 中

    1.下载文件 和进度条处理代码 - (void)timer:(NSTimer *)timer{ // 另一个View中 进度条progress属性赋值 _downloadView.progress = ...

  7. php上传文件进度条

    ps:本文转自脚本之家 Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP 5.4以前 ...

  8. 赵雅智_android多线程下载带进度条

    progressBar说明 在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度. 一个进度条也可不确定其进度.在不确定模式下, ...

  9. asp.net大文件上传与上传文件进度条问题

    利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一 ...

随机推荐

  1. 部署Hadoop2.0高性能集群

    废话不多说直接实战,部署Hadoop高性能集群: 拓扑图: 一.实验前期环境准备: 1.三台主机配置hosts文件:(复制到另外两台主机上) [root@tiandong63 ~]# more /et ...

  2. 在linux写一个shell脚本用maven git自动更新代码并且打包部署

    服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...

  3. NFFM的原理与代码

    本篇深入分析郭大nffm的代码 TensorFlow计算图 计算图的构建 ones = tf.ones_like(emb_inp_v2) mask_a = tf.matrix_band_part(on ...

  4. 5.使用Ribbon实现客户端侧负载均衡

                                Ribbon实现客户端侧负载均衡 5.1. Ribbon简介 Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法 ...

  5. selenium知识点

    1. 导包 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from se ...

  6. JAVA类定义的修饰

    命名类的访问权限public.protected.friendly,private 这四个的权限, 作用域: 当前(父,超)类: 同一Package: 派生(子)类: 其他Package: publi ...

  7. 一百一十六:CMS系统之使用阿里大于sdk发送短信验证码

    阿里大于短信平台:https://dysms.console.aliyun.com/dysms.htm#/overview 使用教程:https://blog.csdn.net/qq103189393 ...

  8. router-link跳转页面传递参数及页面刷新方法

    使用router-link传参: 第一种: 路径:http://localhost:8080/goodListP?id=2 跳转的页面获取参数: this.$route.query.id 第二种: 路 ...

  9. Java集合(7):散列与散列码

    散列的价值在于速度.我们使用数组来保存键的信息,这个信息并不是键本身,而是通过键对象生成一个数字(散列码),作为数组下标.由于数组的容量是固定的,而散列容器的大小是可变的,所以不同的键可以产生相同的数 ...

  10. linux编译gpu_flow

    因为需要做双流,论文里面推荐到这个GPU版本的TVL1算法,于是开始编译. 一.下载源码 git clone https://github.com/feichtenhofer/gpu_flow.git ...