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 命令行也可以自动补全
Nov 30 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
python查看模块,对象的函数方法
Oct 16 Python
Python的历史与优缺点整理
May 26 Python
如何在python中实现线性回归
Aug 10 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
Python数据可视化之绘制柱状图和条形图
May 25 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
全国中波电台频率表
2020/03/11 无线电
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
Javascript之String对象详解
2016/06/08 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
jquery无缝图片轮播组件封装
2020/11/25 jQuery
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
python+django快速实现文件上传
2016/10/24 Python
python数据处理实战(必看篇)
2017/06/11 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
在python中安装basemap的教程
2018/09/20 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Django学习之文件上传与下载
2019/10/06 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
统计专业自荐书
2014/07/06 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS