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用字典统计单词或汉字词个数示例
Apr 22 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python编写屏幕截图程序方法
Feb 18 Python
详谈python read readline readlines的区别
Sep 22 Python
numpy.delete删除一列或多列的方法
Apr 03 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
django中使用Celery 布式任务队列过程详解
Jul 29 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python数据类型学习笔记
2016/01/13 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
pandas重新生成索引的方法
2018/11/06 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
出纳的岗位职责
2013/11/09 职场文书
一句话工作感言
2014/03/01 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
公司食堂管理制度
2015/08/05 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS