(后续待更新...)
使用 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()
执行过程: