• 初识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()
    下载进度

    执行过程:

    世风之狡诈多端,到底忠厚人颠扑不破; 末俗以繁华相尚,终觉冷淡处趣味弥长。
  • 相关阅读:
    Js如何动态声明变量名
    vue 生命周期
    开心就要说出来
    为你自己而努力
    vue调试工具
    笨笨对面向对象的理解
    一些小知识点-慢慢更新
    Ajax同时上传表单序列化参数+自定义参数
    关闭layer当前弹窗
    JSTL 递增序号
  • 原文地址:https://www.cnblogs.com/simple-li/p/11324455.html
Copyright © 2020-2023  润新知