(后续待更新...)

使用 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('{} 已下载:{}(\033[36;1m{}%\033[0m)'.format(nowtime,downed, p))
print('{} 待下载:{}(\033[31;1m{}%\033[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()

下载进度

执行过程:

初识python: 文件下载进度的更多相关文章

  1. Python展示文件下载进度条

    前言 大家在用Python写一些小程序的时候,经常都会用到文件下载,对于一些较小的文件,大家可能不太在乎文件的下载进度,因为一会就下载完毕了. 但是当文件较大,比如下载chromedriver的时候, ...

  2. 孤荷凌寒自学python第三十八天初识python的线程控制

     孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...

  3. 孤荷凌寒自学python第二十一天初识python的类

    孤荷凌寒自学python第二十一天初识python的类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 类是面向对象的编程语言非常重要的概念. 编程语言的进化史中从顺序编程到结构化编程,最后才 ...

  4. 孤荷凌寒自学python第十七天初识Python的函数

    孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...

  5. 孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. Python开发【第一篇】:初识Python

    初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  8. Python字符进度条

    Python字符进度条 看看这个神奇的module from tqdm import trange from time import sleep for r in trange(10, 1, -1): ...

  9. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  10. 初识python面向对象

    一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...

随机推荐

  1. canal安装与使用

    安装 alpha的版本不是稳定的版本 wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deploye ...

  2. 使用$.ajax方式实现页面异步访问,局部更新的效果

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 使用jdbc,查询数据库数据,并将其封装为对象输出

    package cn.itcast.jdbc;import cn.itcast.domain.User;import java.sql.*;import java.util.ArrayList;imp ...

  4. mit6.830 - lab1 - 存储模型 - 题解

    1.Intro github : https://github.com/CreatorsStack/CreatorDB lab1实现数据库基本的存储逻辑结构,具体包括:Tuple,TupleDesc, ...

  5. 删除空行(嵌套)(Power Query 之 M 语言)

    数据源: "姓名""基数""个人比例""个人缴纳""公司比例""公司缴纳"&qu ...

  6. ELK 使用filebeat替代Logstash收集日志

    使用beats采集日志 之前也介绍过beats是ELK体系中新增的一个工具,它属于一个轻量的日志采集器,以上我们使用的日志采集工具是logstash,但是logstash占用的资源比较大,没有beat ...

  7. git提交忽略文件.gitignore内容

    ###################################################################### # Build Tools .gradle /build/ ...

  8. vue-组件化编程

    1.传统编写方式和组件编写方式的区别 组件方式编写可以很方便的复用和封装某些功能模块/组件的命名最好语义化,方便维护和阅读 编写时,我们可以将某些共用的功能或者样式部分抽象,得到对应的组件,按需要引入 ...

  9. Windows c(++)获取磁盘剩余容量

    头文件 #include <windows.h> #include <wtypes.h> 函数 GetDiskFreeSpaceExA 获取剩余可用空间 /// 得到盘符, 例 ...

  10. 【LeetCode】1437. 是否所有 1 都至少相隔 k 个元素 Check If All 1s Are at Least Length K Places Away

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 指针 日期 题目地址:https://leetcode ...