zoukankan      html  css  js  c++  java
  • Python获取下载速度并显示进度条

    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
    
    import sys
    import time
    from urllib import request
    
    
    '''
     urllib.urlretrieve 的回调函数:
    def callbackfunc(blocknum, blocksize, totalsize):
        @blocknum:  已经下载的数据块
        @blocksize: 数据块的大小
        @totalsize: 远程文件的大小
    '''
    
    def Schedule(blocknum, blocksize, totalsize):
        speed = (blocknum * blocksize) / (time.time() - start_time)
        # speed_str = " Speed: %.2f" % speed
        speed_str = " Speed: %s" % format_size(speed)
        recv_size = blocknum * blocksize
        
        # 设置下载进度条
        f = sys.stdout
        pervent = recv_size / totalsize
        percent_str = "%.2f%%" % (pervent * 100)
        n = round(pervent * 50)
        s = ('#' * n).ljust(50, '-')
        f.write(percent_str.ljust(8, ' ') + '[' + s + ']' + speed_str)
        f.flush()
        # time.sleep(0.1)
        f.write('
    ')
    
    # 字节bytes转化KMG
    def format_size(bytes):
        try:
            bytes = float(bytes)
            kb = bytes / 1024
        except:
            print("传入的字节格式不对")
            return "Error"
        if kb >= 1024:
            M = kb / 1024
            if M >= 1024:
                G = M / 1024
                return "%.3fG" % (G)
            else:
                return "%.3fM" % (M)
        else:
            return "%.3fK" % (kb)
    
    if __name__ == '__main__':
        # print(format_size(1222222222))
        start_time = time.time()
        filename = 'test.data'
        url = 'http://ip:port/path/speed.test'
        request.urlretrieve(url, filename, Schedule)
    

      

    作者:Standby一生热爱名山大川、草原沙漠,还有妹子
    出处:http://www.cnblogs.com/standby/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    测试我的第一个随笔
    ORB-SLAM2初步
    STL map 简介
    day4-内置函数
    Python学习之路day4-函数高级特性、装饰器
    Python学习之路day3-函数
    Python学习之路day3-字符编码与转码
    Python学习之路day3-文件操作
    Python学习之路day3-集合
    Python学习之路【第二篇】-pyc简介、Python常用的数据类型及其用法和常用运算符
  • 原文地址:https://www.cnblogs.com/standby/p/7384187.html
Copyright © 2011-2022 走看看