通常,在进行文件下载或执行长时间任务的时候,我们希望有一个进度提示,本文介绍一种绘制进度条的简单方法,先来看看效果吧~
一、原理
本质上,控制台属于字符设备,控制台中的任何元素都能切只能用字符显示,进度条也不例外,即进度条就是一个字符串,将控制台中显示的字符复制下来,然后在python中print一下,看看是不是进度条的效果~
1 | print("[=====.............................................]10.06%") |
因此,我们只需要根据进度的变化,不停的在控制台中打印这样的字符就可以了,下面给出一个示例代码。
1 | import time |
细心的读者会发现,在我们要打印的字符串前面加入了’\r’,该字符表示回车,即回到当前行的行首,每次都再同一行打印,新的内容覆盖久的,就会显示出动画的效果。
二、进度条
虽然,我们已经成功的实现了进度条效果,但为了更方便的复用(总不能每次都copy代码,修改里面的参数吧),我们进一步对其进行封装,代码如下:
1 | import time |
封装之后,使用起来就很方便了。
1 | import random |
三、使用进度条显示文件下载进度
接下来,我们把刚刚做好的进度条应用到实践——文件下载,全部代码如下:
1 | import sys |
效果如下:
三、总结
本文介绍了一种满足基本功能的进度条实现方法,我们当然不能止步于此,在接下来的文章中,将对原有的功能进行加强,有如下几个方向:
- 同时显示多个任务(进度)
- 扩展进度条样式
- 将进度条扩展为多任务管理器
- 使用多线程下载文件
- 增加断点续传
- 从多个服务器中下载文件(类似于p2p)
- 本文作者: killf
- 本文链接: http://www.killf.info/编程语言/Python/Python中显示进度条/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!