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 相关文章推荐
Python3基础之函数用法
Aug 13 Python
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
numpy自动生成数组详解
Dec 15 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
python sort、sort_index方法代码实例
Mar 28 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 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 常用函数库和一些实用小技巧
2009/01/01 PHP
php5.3 废弃函数小结
2010/05/16 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
Python 的 with 语句详解
2014/06/13 Python
python实现数独算法实例
2015/06/09 Python
python 数据的清理行为实例详解
2017/07/12 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
python3实现高效的端口扫描
2019/08/31 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
水电工岗位职责
2014/02/12 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书