zoukankan      html  css  js  c++  java
  • 使用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中

    下载的文件:

    双击下载的文件:

    证明下载的文件没问题!

  • 相关阅读:
    Robotium 测试方法
    T-SQL—理解CTEs
    SQLServer复制(二)--事务代理作业
    数据库复制(一)--复制介绍
    小议如何使用APPLY
    优化SQLServer——表和分区索引(二)
    关于UNPIVOT 操作符
    XML 在SQLServer中的使用
    列存储索引1:初识列存储索引
    T-SQL性能调整(一)--编译和重新编译
  • 原文地址:https://www.cnblogs.com/phyger/p/11370923.html
Copyright © 2011-2022 走看看