zoukankan      html  css  js  c++  java
  • 初识python: 文件下载进度

    (后续待更新...)

    使用 request 的 urlretrieve 方法创建“回调函数”: 下载进度

    详细代码如下:

    #!/user/bin env python
    # author:Simple-Sir
    # time:2019/8/8 21:00
    # 下载进度
    from urllib import request
    import time
    
    def downPercent(blockNum,blockSize,totalSize):
        '''
        回调函数,下载进度
        :param blockNum:已经下载的数据块
        :param blockSize:数据块的大小
        :param totalSize:要下载文件总大小
        '''
        downed = blockNum*blockSize/1024  # 已下载大小 kb
        totalSize = totalSize/1024  # 总大小 kb
        p = round(downed/totalSize*100,2)  # 已下载百分比
        downWait = totalSize-downed  # 待下载大小 kb
        if p>100:
            p=100
        if downWait<0:
            downWait=0
        nowtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
        print('{} 文件总大小:{}'.format(nowtime,totalSize))
        print('{} 已下载:{}(33[36;1m{}%33[0m)'.format(nowtime,downed, p))
        print('{} 待下载:{}(33[31;1m{}%33[0m)'.format(nowtime,downWait, round(100-p,2)))
    
    def download():
        url = 'https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-5.7.27.0.msi'  # mysql数据库下载
        startTime = time.time()
        request.urlretrieve(url,'mysql-installer-community-5.7.27.0.msi',downPercent)
        endTime = time.time()
        print('文件已下载完成!总用时:',time.strftime('%M:%S', time.localtime(endTime-startTime)))
    
    if __name__ == '__main__':
        download()
    下载进度

    执行过程:

    世风之狡诈多端,到底忠厚人颠扑不破; 末俗以繁华相尚,终觉冷淡处趣味弥长。
  • 相关阅读:
    NW.js开发环境的搭建
    EXPORTS与MODULE.EXPORTS的区别
    搭建 webpack + React 开发环境
    require,import区别?
    数据库中图片的二进制存储和显示
    二进制图片存储问题
    单线程(Thread)与多线程的区别
    软件测试心得--悲催我
    2015年-年度总结
    人生当中第一次转正
  • 原文地址:https://www.cnblogs.com/simple-li/p/11324455.html
Copyright © 2011-2022 走看看