• 使用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中

    下载的文件:

    双击下载的文件:

    证明下载的文件没问题!

  • 相关阅读:
    Single Number II
    Pascal's Triangle
    Remove Duplicates from Sorted Array
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Unique Paths
    Sort Colors
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Climbing Stairs
  • 原文地址:https://www.cnblogs.com/phyger/p/11370923.html
Copyright © 2020-2023  润新知