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字符串、元组、列表、字典互相转换的方法
Jan 23 Python
Python模块WSGI使用详解
Feb 02 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Django框架验证码用法实例分析
May 10 Python
python实现登录密码重置简易操作代码
Aug 14 Python
Django实现文件上传和下载功能
Oct 06 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python爬不同图片分别保存在不同文件夹中的实现
Apr 02 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 SQL之where语句生成器
2009/03/24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
jQuery live
2009/05/15 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
基于jquery实现左右上下移动效果
2018/05/02 jQuery
layui的table中显示图片方法
2018/08/17 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python入门篇之文件
2014/10/20 Python
Python出现segfault错误解决方法
2016/04/16 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
Python的log日志功能及设置方法
2019/07/11 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
美国网上订购鲜花:FTD
2016/09/23 全球购物
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
彩妆大赛策划方案
2014/05/13 职场文书
异地年检委托书范本
2014/09/24 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python