对于开发或者运维来讲,使用Python去完成一些跑批任务,或者作一些监控事件是很是正常的状况。那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另外一种方式来了解任务进展到哪一步了呢?python
这就是今天咱们来了解的内容,进度条git
首先说一下在操做系统中,都有哪些控制符:github
\r: 将光标移动到当前行的首位而不换行;多线程
\n:将光标移动到下一行,并不移动到首位;运维
\r\n:将光标移动到下一行首位。工具
那让咱们来看下如何经过python来将标准输出中添加进度条吧学习
在学习过程当中有什么不懂得能够加个人 python学习交流扣扣qun,784758214 群里有不错的学习视频教程、开发工具与电子书籍。 与你分享python企业当下人才需求及怎么从零基础学习好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是一个快速、扩展性强的进度条工具库,它提供了很是多的接口,有兴趣的小伙伴能够了解一下。githup地址是: https://github.com/tqdm/tqdm操作系统
咱们来看下,如何使用tqdm模块来实现进度条线程
a. 首先是安装,很是简单
pip install tqdm
b. 接下来就是操做啦
from time import sleep from tqdm import tqdm # 这里一样的,tqdm就是这个进度条最经常使用的一个方法 # 里面存一个可迭代对象 for i in tqdm(range(1, 500)): # 模拟你的任务 sleep(0.01)
是否是看到这里发现,tqdm很是的简单呢?
这只是一个例子啦,他也能够很是的复杂,同时你也支持多线程、多进程,还有pandas哦~来一个多进程的感觉下吧~