Python实现采用进度条实时显示处理进度的方法


Posted in Python onDecember 19, 2017

本文实例讲述了Python实现采用进度条实时显示处理进度的方法。分享给大家供大家参考,具体如下:

前言

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

如何使用这个类

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

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 相关文章推荐
Python模块学习 filecmp 文件比较
Aug 27 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
Python面向对象编程基础解析(一)
Oct 26 Python
python+opencv轮廓检测代码解析
Jan 05 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Django框架视图函数设计示例
Jul 29 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
用python画一只可爱的皮卡丘实例
Nov 21 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 #Python
分析python切片原理和方法
Dec 19 #Python
python实现redis三种cas事务操作
Dec 19 #Python
Python2/3中urllib库的一些常见用法
Dec 19 #Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 #Python
Python random模块用法解析及简单示例
Dec 18 #Python
Python方法的延迟加载的示例代码
Dec 18 #Python
You might like
PHP教程 变量定义
2009/10/23 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
python dict如何定义
2020/09/02 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
面向对象编程的优势是什么
2015/12/17 面试题
企业演讲稿范文
2013/12/28 职场文书
顶岗实习计划书
2014/01/10 职场文书
应届大专生自荐书
2014/06/16 职场文书
上班离岗检讨书
2014/09/10 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
人工作失职检讨书
2015/05/05 职场文书
班级班风口号大全
2015/12/25 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
古诗之感恩老师
2019/10/24 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js