美文网首页Python学习互联网科技
万能的Python,还能用来制作高大上的进度条?

万能的Python,还能用来制作高大上的进度条?

作者: 919b0c54458f | 来源:发表于2019-04-29 22:04 被阅读6次
    image

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

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

    1. 标准输出

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

    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

    image

    Python学习交流群:556370268,这里是python学习者聚集地,有大牛答疑,有资源共享!有想学习python编程的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

    2. tqdm模块

    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哦~来一个多进程的感受下吧~

    image

    相关文章

      网友评论

        本文标题:万能的Python,还能用来制作高大上的进度条?

        本文链接:https://www.haomeiwen.com/subject/rwqpnqtx.html