用Python给程序加个进度条
点击上方“程序人生”,选择“置顶公众号”
第一时间关注程序猿(媛)身边的故事
图片源自网络
作者
猿媛牧场
如需转载,请联系原作者授权。
对于开发或者运维来说,使用 Python 去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效地监控任务的进度?除了在任务中加上 Log 外,还能不能有另一种方式来了解任务进展到哪一步了呢?
这就是今天我们来了解的内容——进度条。
▌标准输出
首先说一下在操作系统中,都有哪些控制符:
r: 将光标移动到当前行的首位而不换行;
n:将光标移动到下一行,并不移动到首位;
rn:将光标移动到下一行首位。
那让我们来看下如何通过 Python 来将标准输出中添加进度条吧。
import sys
import time
def progress_bar(total):
"""
进度条效果
"""
# 获取标准输出
_output = sys.stdout
# 通过参数决定你的进度条总量是多少
for count in range(0, total + 1):
# 这里的second只是作为工作量的一种代替
# 这里应该是有你的主程序,main()
_second = 0.1
# 模拟业务的消耗时间
time.sleep(_second)
# 输出进度条
_output.write(f'rcomplete percent:{count:.0f}')
# 将标准输出一次性刷新
_output.flush()
progress_bar(100)
来看下实际效果,这里我录了一段GIF:
▌Tqdm 模块
Tqdm 是一个快速、扩展性强的进度条工具库,它提供了非常多的接口,有兴趣的小伙伴可以了解一下。
GitHub 地址是:https://github.com/tqdm/tqdm。
我们来看下,如何使用 Tqdm 模块来实现进度条。
1. 首先是安装,非常简单。
pip install tqdm
2. 接下来就是具体的操作。
from time import sleep
from tqdm import tqdm
# 这里同样的,tqdm就是这个进度条最常用的一个方法
# 里面存一个可迭代对象
for i in tqdm(range(1, 500)):
# 模拟你的任务
sleep(0.01)
是不是看到这里发现,Tqdm 非常的简单呢?这只是一个例子,它也可以非常的复杂,同时也支持多线程、多进程,还有 Pandas。
来一个多进程的感受下吧。
所有的代码都已经 Push 到我的 GitHub 上去了,有兴趣的小伙伴可以前去Download。
Miracle Github:https://github.com/MiracleYoung/exercises
声明:本文为作者投稿,版权归作者所有。
- The End -
「若你有原创文章想与大家分享,欢迎投稿。」
加编辑微信ID,备注#投稿#:
程序 丨 druidlost
小七 丨 duoshangshuang
更多精彩内容
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 1 “一个人遇到好老师是人生的幸运” 7904268
- 2 王辰被免去中国工程院副院长职务 7808155
- 3 NASA惊人发现:火星或曾存在远古生命 7713453
- 4 摘下奖章迎接烈士回家 7618860
- 5 短剧招“爸妈”日薪5000先花4万培训 7522232
- 6 68岁奶奶玩3年滑板化身“追风少女” 7426436
- 7 武契奇:塞尔维亚是中国人民第二故乡 7332200
- 8 狙击特朗普盟友的枪手仅开了一枪 7237997
- 9 男子背着钓到的79斤鳡鱼在闹市穿行 7135832
- 10 万能插线板藏安全隐患 早已被禁用 7048657