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代码调试的几种方法总结
Apr 15 Python
Python的装饰器使用详解
Jun 26 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python实现自动登录
Sep 17 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
python数据预处理 :数据抽样解析
Feb 24 Python
用python实现名片管理系统
Jun 18 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
Python实现区域填充的示例代码
Feb 03 Python
Python实现仓库管理系统
May 30 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中break及continue两个流程控制指令区别分析
2011/04/18 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
微信小程序 动态传参实例详解
2017/04/27 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
Python实现保证只能运行一个脚本实例
2015/06/24 Python
python中使用序列的方法
2015/08/03 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
python打包多类型文件的操作方法
2020/09/21 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
请假条的格式
2014/04/11 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
公司催款律师函
2015/05/27 职场文书
名人传读书笔记
2015/06/26 职场文书
任命书格式模板
2015/09/22 职场文书