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中as用法实例分析
Apr 30 Python
Python基于checksum计算文件是否相同的方法
Jul 09 Python
Python实现选择排序
Jun 04 Python
Python多线程扫描端口代码示例
Feb 09 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
Python日期时间Time模块实例详解
Apr 15 Python
python五子棋游戏的设计与实现
Jun 18 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Python进行区间取值案例讲解
Aug 02 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的图形函数中显示汉字
2006/10/09 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
python 简单的绘图工具turtle使用详解
2017/06/21 Python
python实现图像识别功能
2018/01/29 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Python交互环境下实现输入代码
2018/06/22 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
个人简历中的自我评价范例
2013/10/29 职场文书
行政助理岗位职责
2013/11/10 职场文书
同意迁入证明模板
2014/10/26 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
招商银行收入证明
2015/06/17 职场文书
企业宣传语大全
2015/07/13 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python