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语言中的按位运算符
Nov 26 Python
使用Python保存网页上的图片或者保存页面为截图
Mar 05 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python3.6.2调用ffmpeg的方法
Jan 10 Python
Django 配置多站点多域名的实现步骤
May 17 Python
python调试神器PySnooper的使用
Jul 03 Python
Python实现获取当前目录下文件名代码详解
Mar 10 Python
python中执行smtplib失败的处理方法
Jul 01 Python
Python常用扩展插件使用教程解析
Nov 02 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 Python
python运算符之与用户交互
Apr 13 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 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
JS中的数组的sort方法使用示例
2014/01/22 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
简述jQuery Easyui一些用法
2017/08/01 jQuery
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
js+audio实现音乐播放器
2020/09/13 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python 中 Meta Classes详解
2016/02/13 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
对Python3 序列解包详解
2019/02/16 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
资料员的岗位职责
2013/11/20 职场文书
文明村创建实施方案
2014/03/27 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
2015大一新生军训感言
2015/08/01 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle