前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python给程序加个进度条

用Python给程序加个进度条

作者头像
用户1634449
发布2018-06-29 12:21:33
2.3K0
发布2018-06-29 12:21:33
举报
文章被收录于专栏:Python专栏Python专栏

对于开发或者运维来说,使用python去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另一种方式来了解任务进展到哪一步了呢?

这就是今天我们来了解的内容,进度条

标准输出

首先说一下在操作系统中,都有哪些控制符:

  • \r: 将光标移动到当前行的首位而不换行;
  • \n:将光标移动到下一行,并不移动到首位;
  • \r\n:将光标移动到下一行首位。

那让我们来看下如何通过python来将标准输出中添加进度条吧

代码语言:javascript
复制
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是一个快速、扩展性强的进度条工具库,它提供了非常多的接口,有兴趣的小伙伴可以了解一下。githup地址是: https://github.com/tqdm/tqdm

我们来看下,如何使用tqdm模块来实现进度条

1. 首先是安装,非常简单

代码语言:javascript
复制
pip install tqdm

2. 接下来就是操作啦

代码语言:javascript
复制
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

如果你对今天的内容还感兴趣的话,何不点个赞再走呢?如果感兴趣到想赞赏我,就不要犹豫啦~


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿媛牧场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档