Python 实现进度条的六种方式


Posted in Python onJanuary 06, 2021

一、普通进度条

示例代码

import sys
import time


def progress_bar():
  for i in range(1, 101):
    print("\r", end="")
    print("Download progress: {}%: ".format(i), "?" * (i // 2), end="")
    sys.stdout.flush()
    time.sleep(0.05)

if __name__ == '__main__':
  progress_bar()

展现形式

Python 实现进度条的六种方式

二、带时间的进度条

导入time模块来计算代码运行的时间,加上代码迭代进度使用格式化字符串来输出代码运行进度

示例代码

import time

scale = 50
print("执行开始,祈祷不报错".center(scale // 2,"-"))
start = time.perf_counter()
for i in range(scale + 1):
  a = "*" * i
  b = "." * (scale - i)
  c = (i / scale) * 100
  dur = time.perf_counter() - start
  print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")
  time.sleep(0.1)

print("\n"+"执行结束,万幸".center(scale // 2,"-"))

展现形式

Python 实现进度条的六种方式

三、TPDM 进度条

这是一个专门生成进度条的工具包,可以使用pip在终端进行下载,当然还能切换进度条风格

 示例代码

from time import sleep
from tqdm import tqdm
# 这里同样的,tqdm就是这个进度条最常用的一个方法
# 里面存一个可迭代对象
for i in tqdm(range(1, 500)):
  # 模拟你的任务
  sleep(0.01)
sleep(0.5)

展现形式

 Python 实现进度条的六种方式

四、progress 进度条

只需要定义迭代的次数、进度条类型并在每次迭代时告知进度条即可

相关文档:https://pypi.org/project/progress/1.5/

示例代码

import time
from progress.bar import IncrementalBar

mylist = [1,2,3,4,5,6,7,8]
bar = IncrementalBar('Countdown', max = len(mylist))
for item in mylist:
  bar.next()
  time.sleep(1)
  bar.finish()

展现形式

 Python 实现进度条的六种方式

五、alive_progress 进度条

顾名思义,这个库可以使得进度条变得生动起来,它比原来我们见过的进度条多了一些动画效果,需要使用pip进行下载

相关文档:https://github.com/rsalmei/alive-progress

示例代码

from alive_progress import alive_bar

# retrieve your set of items
items = range(100)       

# declare your expected total   
with alive_bar(len(items)) as bar:  
  # iterate as usual
  for item in items:        
    # process each item
    bar()
    time.sleep(0.1)

展现形式

Python 实现进度条的六种方式

六、可视化进度条

用 PySimpleGUI 得到图形化进度条,我们可以加一行简单的代码,在命令行脚本中得到图形化进度条,也是使用pip进行下载

示例代码

import PySimpleGUI as sg
import time

mylist = [1,2,3,4,5,6,7,8]
for i, item in enumerate(mylist):
  sg.one_line_progress_meter('This is my progress meter!', i+1, len(mylist), '-key-')
  time.sleep(1)

展现形式

Python 实现进度条的六种方式

以上就是Python 实现进度条的六种方式的详细内容,更多关于python 实现进度条的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现斐波那契递归函数的方法
Sep 08 Python
使用paramiko远程执行命令、下发文件的实例
Oct 01 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Python对象与引用的介绍
Jan 24 Python
Python制作exe文件简单流程
Jan 24 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
Python双链表原理与实现方法详解
Feb 22 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
Python selenium爬取微博数据代码实例
May 22 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
Python偏函数实现原理及应用
Nov 20 Python
Python 解决空列表.append() 输出为None的问题
May 23 Python
基于Python实现天天酷跑功能
Jan 06 #Python
python 下载文件的几种方法汇总
Jan 06 #Python
python 视频下载神器(you-get)的具体使用
Jan 06 #Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 #Python
如何在vscode中安装python库的方法步骤
Jan 06 #Python
如何利用python 读取配置文件
Jan 06 #Python
Pandas之缺失数据的实现
Jan 06 #Python
You might like
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
JS自动缩小超出大小的图片
2012/10/12 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
python中__call__内置函数用法实例
2015/06/04 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
pandas中ix的使用详细讲解
2020/03/09 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
应聘美工求职信
2013/11/07 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
小学教师评语大全
2014/04/23 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python