专栏首页机器学习算法与Python学习给程序加个进度条 | Python

给程序加个进度条 | Python

首发 / CSDN

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

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

标准输出

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

: 将光标移动到当前行的首位而不换行;

:将光标移动到下一行,并不移动到首位;

:将光标移动到下一行首位。

那让我们来看下如何通过 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
complete 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

本文分享自微信公众号 - 机器学习算法与Python学习(guodongwei1991),作者:猿媛牧场

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 干货|当深度学习遇见自动文本摘要,seq2seq+attention

    昱良
  • I am IT,不是修电脑的(-_-)---(_-_)

    在互联网和信息化高唱主旋律的时代,IT行业成为当之无愧的朝阳产业,这个行业的从业者可谓时代宠儿。他们智商高、年纪轻,在技术的海洋里自由驰骋,却与社会保持着一定的...

    昱良
  • 《福布斯》评史上最差5款Android手机,你中了吗?

    近日,美国《福布斯》杂志评出了史上最差的五款Android手机,其中不乏“老爷机”,可能还有曾被你视若珍宝的机型呦!(欢迎您参与文末的投票选出你认为最差的手机,...

    昱良
  • 利用.htaccess绑定子域名到子目录

    Youngxj
  • 123-进度条

    经常有同学希望实现进度条的功能。这个功能可以采用现有的模块来实现,这里我来介绍一个简单的进度条模块tqdm。 首先将tqdm安装上

    凯茜的老爸
  • 高级vue教程 源码分析

    lilugirl
  • web框架:Spring

    目前在企业开发中只使用Spring开发的已经寥寥无几,但是现在流行的组合框架中却不可缺乏Spring的身影。Spring对于代码的解耦,优化层次,编程思想方面有...

    黑白格
  • 小程序开发中的一些实践和踩坑

    在公司小程序也开发了一段时间了,中间遇到过很多问题,特此记录几个比较典型的问题和解决方案。

    张张
  • Spring全家桶的深入学习(一):Spring起步

    随着Spring Boot 2.x的引入,Spring自动配置的能力已经大大加强,Spring Boot能够基于类路径中的条目、环境变量和其他因素合理猜测需要配...

    智慧zhuhuix
  • 小程序开发中的一些实践和踩坑

    在公司小程序也开发了一段时间了,中间遇到过很多问题,特此记录几个比较典型的问题和解决方案。

    张张

扫码关注云+社区

领取腾讯云代金券