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中time()方法的使用的教程
May 22 Python
python3抓取中文网页的方法
Jul 28 Python
python 接口返回的json字符串实例
Mar 27 Python
python3.5 email实现发送邮件功能
May 22 Python
实例讲解Python3中abs()函数
Feb 19 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
python多线程同步之文件读写控制
Feb 25 Python
基于Python实现扑克牌面试题
Dec 11 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python实现发送QQ邮件(可加附件)
Dec 23 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中的integer类型使用分析
2010/07/27 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
js 小贴士一星期合集
2010/04/07 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
python实现AES加密与解密
2019/03/28 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
测绘工程个人的自我评价
2013/11/23 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
医生见习报告范文
2014/11/03 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
获奖感言一句话
2015/07/31 职场文书
python实现会员管理系统
2022/03/18 Python
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL