Python进度条实时显示处理进度的示例代码


Posted in Python onJanuary 30, 2018

前言

在大多数时候,我们的程序会一直进行循环处理。这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来该做些什么。接下来告诉大家如何简单又漂亮的实现这一功能。

如何使用这个类

使用这个类很简单,只需要三步即可完成,如下:

process_bar = ShowProcess(max_steps) # 1.在循环前定义类的实体, max_steps是总的步数  
for i in range(max_steps + 1):  
  process_bar.show_process()   # 2.显示当前进度
  time.sleep(0.05)  
process_bar.close('done')      # 3.处理结束后显示消息

进度条的实现

由于很简单,直接上代码

#!/usr/local/lib
# -*- coding: UTF-8 -*-

import sys, time

class ShowProcess():
  """
  显示处理进度的类
  调用该类相关函数即可实现处理进度的显示
  """
  i = 0 # 当前的处理进度
  max_steps = 0 # 总共需要处理的次数
  max_arrow = 50 #进度条的长度

  # 初始化函数,需要知道总共的处理次数
  def __init__(self, max_steps):
    self.max_steps = max_steps
    self.i = 0

  # 显示函数,根据当前的处理进度i显示进度
  # 效果为[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
  def show_process(self, i=None):
    if i is not None:
      self.i = i
    else:
      self.i += 1
    num_arrow = int(self.i * self.max_arrow / self.max_steps) #计算显示多少个'>'
    num_line = self.max_arrow - num_arrow #计算显示多少个'-'
    percent = self.i * 100.0 / self.max_steps #计算完成进度,格式为xx.xx%
    process_bar = '[' + '>' * num_arrow + '-' * num_line + ']'\
           + '%.2f' % percent + '%' + '\r' #带输出的字符串,'\r'表示不换行回到最左边
    sys.stdout.write(process_bar) #这两句打印字符到终端
    sys.stdout.flush()

  def close(self, words='done'):
    print ''
    print words
    self.i = 0

if __name__=='__main__':
  max_steps = 100

  process_bar = ShowProcess(max_steps)

  for i in range(max_steps + 1):
    process_bar.show_process()
    time.sleep(0.05)
  process_bar.close()

运行

按照主函数的方法调用此类即可,显示效果如下:

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
done

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(四):域名系统
Jun 09 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
python实现基于SVM手写数字识别功能
May 27 Python
深入浅析Python中的yield关键字
Jan 24 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
Python装饰器基础概念与用法详解
Dec 22 Python
Python 下载及安装详细步骤
Nov 04 Python
基于Django实现日志记录报错信息
Dec 17 Python
python 发送邮件的四种方法汇总
Dec 02 Python
如何使用Python实现一个简易的ORM模型
May 12 Python
Python3生成手写体数字方法
Jan 30 #Python
python字符串的方法与操作大全
Jan 30 #Python
Python实现带参数与不带参数的多重继承示例
Jan 30 #Python
Python实现的随机森林算法与简单总结
Jan 30 #Python
Python决策树和随机森林算法实例详解
Jan 30 #Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 #Python
python使用Tkinter实现在线音乐播放器
Jan 30 #Python
You might like
PHP时间戳使用实例代码
2008/06/07 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php时区转换转换函数
2014/01/07 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
pygame学习笔记(5):游戏精灵
2015/04/15 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
浅谈django orm 优化
2018/08/18 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
缓刑期间思想汇报范文
2014/10/10 职场文书
社区母亲节活动总结
2015/02/10 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
Python超详细分步解析随机漫步
2022/03/17 Python
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers
Vue操作Storage本地化存储
2022/04/29 Vue.js