首页 > 编程语言 > 详细

Python · 进度条

时间:2019-03-20 16:18:56      阅读:109      评论:0      收藏:0      [点我收藏+]

(这里是本章会用到的 GitHub 地址)

我实现的这个进度条可能是可以当做一个第三方库来使用的(这个人好自大,啧),它支持记录并发程序的进度且损耗基本只来源于 Python 本身

先来看看我们的进度条长啥样:

 

技术分享图片它有一个名字(“Test”)、有总任务数和已完成任务数、有总耗时和单个任务平均耗时、还有一个“进度条”。所有这些在整个程序运行过程中都是在一行内输出的、也就是说它不会产生多行输出(如果屏幕够宽的话)。所有任务完成后,进度条会变为:

 

 

技术分享图片大体上来说功能还算完备。虽说看上去可能有点厉害,其实最核心的实现只用到了这个功能:

 

  • print("\r" + "xxx", end=""):这样的话会先把 console 里面当前的行清除掉、再输出 xxx

剩下的就都是各种封装了。我打算只说一个实现的大致思路、然后讲讲怎么去调用这个进度条

实现的大纲大概如下: 

  • 要记录任务开始时的已完成的任务数和未完成的任务数
  • 要定义一个计数器,记录着总共已完成的任务数
  • 要定义一个 start 函数和一个 update 函数作为接口
  • 要定义一个 _flush 函数来控制输出流

调用的方法:

def task():
    x = 0
    for _ in range(10 ** 6):
        x = 0
    return x

if __name__ == ‘__main__‘:
    n = 100
    bar = ProgressBar(max_value=n, name="Test")
    bar.start()
    for i in range(n):
        task()
        bar.update()

Done!运行效果就是上面那两张图

这章有点水(你居然有自知之明)、主要是想帮一下平时会用 Python 运行大程序却又暂时苦于无法得知进度的观众老爷们(虽然这部分观众老爷可能都知道怎么实现进度条……)。进度条通常来说可以用在爬虫或机器学习中,我实现的神经网络里面就用到了它

Python · 进度条

原文:https://www.cnblogs.com/qingdeng123/p/10565069.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!