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和C++求解方法
Aug 20 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
python 换位密码算法的实例详解
Jul 19 Python
python实现数据图表
Jul 29 Python
Django forms组件的使用教程
Oct 08 Python
对python的bytes类型数据split分割切片方法
Dec 04 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python 内存管理机制全面分析
Jan 16 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 truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python中取整的几种方法小结
2017/01/06 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
关键字throw与throws的用法差异
2016/11/22 面试题
低碳环保倡议书
2014/04/14 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
2016年端午节寄语
2015/12/04 职场文书
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫