广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何用Python中progress库实现进度条
  • 430
分享到

如何用Python中progress库实现进度条

2023-07-05 16:07:09 430人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“如何用python中progress库实现进度条”,在日常操作中,相信很多人在如何用Python中progress库实现进度条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python

这篇文章主要介绍“如何用python中progress库实现进度条”,在日常操作中,相信很多人在如何用Python中progress库实现进度条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python中progress库实现进度条”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

progress库安装和介绍

安装progress库

progress是Python第三方库,在终端执行 pip 命令安装。

pip install progress

progress进度条效果展示

在官网可以看到progress能实现的各种进度条效果,如下动图。

如何用Python中progress库实现进度条

progress实现进度条

coding=utf-8from progress.bar import Barimport time# 创建Bar类的实例bar = Bar('MyProcess:', max=100)# 循环处理某业务,调用bar对象的next()方法,循环次数等于maxfor _ in range(100):# Do some work    time.sleep(0.05)    bar.next()# 循环完成后调用finish()方法bar.finish()

运行效果:

如何用Python中progress库实现进度条

使用 progress 库实现进度条很简单,从 progress 库的 bar.py 中导入 Bar 类,实例化一个对象,然后循环处理业务和调用 next() 方法,处理完成后调用 finish() 方法结束进度条。

Bar 类的主要参数有:

  • message: 进度条显示的信息,这个参数默认可以用位置参数传给 Bar 。

  • width: 修改进度条的宽度,默认32。

  • max: 进度条被分成几等份,如100。

  • suffix: 进度百分比显示的格式,默认 ‘%(index)d/%(max)d’ 。

  • fill: 进度条用什么填充,默认’#’ 。

  • empty_fill: 未加载的进度条用什么填充,默认空格’ ’ 。

  • bar_prefix: 进度条前缀,默认’ |’ 。

  • bar_suffix: 进度条后缀,默认’| ’ 。

  • color: 进度条的颜色,默认None。

PyCharm进度条显示问题解决

大部分Python程序员都使用PyCharm,如果在PyCharm中运行进度条代码后没有显示进度条效果,可以按照如下步骤设置,再重新运行代码。

Step1. 点击PyCharm上方的 Run 按钮,然后点击 Edit Configurations,进入运行配置页面。

如何用Python中progress库实现进度条

Step2. 将 Emulate terminal in output console 选项打钩,然后重新运行代码。

如何用Python中progress库实现进度条

细心的小伙伴应该发现了,上面的进度条代码在PyCharm中运行完成后,进度条下有一串奇怪的字符: ‘?[?25h’ ,在终端中用脚本方式 python progress_demo.py 运行相同的代码,不会有这串符号。

这串字符表示的是光标,在PyCharm中运行完成后,光标被输出在控制台上了。解决方法为:按住 Ctrl 键,点击导入的 Bar 类名,跳转到源码 bar.py 中,再按住 Ctrl 键点击 Bar 类继承的 Progress 类,进入 progress 库的 __init__.py 文件中,将该文件中的 SHOW_CURSOR 变量改为空字符串

如何用Python中progress库实现进度条

修改源码后再重新运行代码,光标不显示了,那一串字符也就不显示了。

如何用Python中progress库实现进度条

在PyChram中运行进度条,还可能会遇到其他显示问题,建议出现问题时,用脚本的方式运行,以脚本运行的结果为准,PyChram中运行只用来调试代码。

进度条代码的另外两种写法

1. 上下文管理器: 使用 with … as … 上下文管理器的方式编写进度条,进度条完成后无需调用 finish() 方法。

with Bar('Processing', max=20) as bar:    for i in range(20):        time.sleep(0.05)        bar.next()

2. 使用 iter() 方法: 使用 iter() 方法可以简化迭代器的工作,不需要调用 next() 方法。

for i in Bar('Processing').iter(range(100)):    time.sleep(0.05)

这两种实现方式执行的结果与最开始的实现方式一样。

实现更多种类的进度条

1. Bar 系列

前文中点进了progress的源码,可以看到 Bar 类继承自 Progress 类,Progress 类继承自 Infinite 类,Progress 类和 Infinite 类实现了进度条的基本功能。

在 bar.py 中,除了 Bar 类,还有6个类,ChargingBar, FillingSquaresBar, FillinGCirclesBar, IncrementalBar, PixelBar, ShadyBar,它们分别是 Bar 类的子类或孙类,继承了进度条的功能,在每一个类中只是修改了 suffix, fill, empty_fill, bar_prefix, bar_suffix这些变量的值,修改了进度条的样式。

使用很简单,只需要导入这些类,将上面代码中的 Bar 换成这些类就行了,如 FillingSquaresBar。

from progress.bar import Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar, ShadyBarimport timebar = FillingSquaresBar('MyProcess:', max=100)for i in range(100):    time.sleep(0.05)    bar.next()bar.finish()

运行效果:

如何用Python中progress库实现进度条

还可以自己修改上面的参数,设置个性化的进度条,本文暂不扩展,以后有空可以专门写文章介绍。

2. Spinner 系列

progress 库的 spinner.py 中实现了 5 个类,Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner。

from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinnerfor i in Spinner('MySpinner:').iter(range(100)):    time.sleep(0.01)

运行效果:

如何用Python中progress库实现进度条

3.Counter 系列

progress 库的 counter.py 中实现了 4 个类,Counter, Countdown, Stack, Pie。

from progress.counter import Counter, Countdown, Stack, Pieimport timefor i in Counter('Loading:').iter(range(100)):    time.sleep(0.01)

运行效果:

如何用Python中progress库实现进度条

汇总

接下来将上面介绍的所有种类的进度条全部放到一起,代码如下:

from progress.bar import Bar, ChargingBar, FillingSquaresBar, \    FillingCirclesBar, IncrementalBar, PixelBar, ShadyBarfrom progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinnerfrom progress.counter import Counter, Countdown, Stack, Pieimport timeimport randomprogess_list = [Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar,                PixelBar, ShadyBar, Spinner, PieSpinner, MoonSpinner, LineSpinner,                PixelSpinner, Counter, Countdown, Stack, Pie]for P in progess_list:    for i in P(P.__name__ + ':').iter(range(100)):        time.sleep(0.01)bar = IncrementalBar('Random:', suffix='%(index)d%%')for i in range(100):    bar.Goto(random.randint(0, 100))    time.sleep(0.01)bar.finish()

运行效果:

如何用Python中progress库实现进度条

运行代码后可以得出所有种类的进度条,与文章开头从官网截的图效果相同。

到此,关于“如何用Python中progress库实现进度条”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何用Python中progress库实现进度条

本文链接: https://www.lsjlt.com/news/353308.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用Python中progress库实现进度条
    这篇文章主要介绍“如何用Python中progress库实现进度条”,在日常操作中,相信很多人在如何用Python中progress库实现进度条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python...
    99+
    2023-07-05
  • 一文教你用Python中progress库实现进度条
    目录progress库安装和介绍progress实现进度条PyCharm进度条显示问题解决进度条代码的另外两种写法实现更多种类的进度条汇总progress库安装和介绍 1.安装pro...
    99+
    2023-03-24
    Python progress实现进度条 Python progress进度条 Python progress Python 进度条
  • Android项目中使用Progress实现一个环形进度条
    这期内容当中小编将会给大家带来有关Android项目中使用Progress实现一个环形进度条,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。效果图:代码实现:设置已完成步数和目标步数: public vo...
    99+
    2023-05-31
    android gr progress
  • python如何实现一个进度条
    这篇文章主要介绍python如何实现一个进度条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现一个进度条from time import sleep ...
    99+
    2022-10-19
  • python如何实现普通进度条
    这篇文章将为大家详细讲解有关python如何实现普通进度条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。普通进度条利用打印功能print进行实时刷新显示for ...
    99+
    2022-10-19
  • Python如何实现酷炫进度条
    这篇文章主要介绍了Python如何实现酷炫进度条的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何实现酷炫进度条文章都会有所收获,下面我们一起来看看吧。1、自定义ProgressBar最原始的办法就...
    99+
    2023-06-30
  • Xamarin XAML语言中如何使用Progress属性数据绑定设置进度条进度
    这篇文章将为大家详细讲解有关Xamarin XAML语言中如何使用Progress属性数据绑定设置进度条进度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。开发者除了可以为ProgressBar定义的Pro...
    99+
    2023-06-04
  • CSS如何实现进度条和订单进度条
    小编给大家分享一下CSS如何实现进度条和订单进度条,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简单地效果图如下:CSS实现进度条:html结构:<div&...
    99+
    2023-06-08
  • python使用tqdm库实现循环打印进度条
    1. while 循环 Python的while循环可以打印进度条,可以使用tqdm这个库来实现。tqdm是一个用于在Python中添加进度条的库,它可以很容易地集成到while循环...
    99+
    2023-05-18
    python打印进度条 python循环打印
  • python 实现终端中的进度条
    # -*- coding:utf-8 -*-   # Copyright: Lustralisk # Author: test # Date: 2015-11-08   import sys, time   class ProgressBa...
    99+
    2023-01-31
    终端 进度条 python
  • Python中怎么使用Flask实现进度条
    本篇内容主要讲解“Python中怎么使用Flask实现进度条”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中怎么使用Flask实现进度条”吧!使用Flask实现进度条问题描述Pyth...
    99+
    2023-06-30
  • 如何在C#中实现进度条
    在C#中实现进度条可以使用ProgressBar控件。下面是一个简单的示例代码:```csharpusing System;usin...
    99+
    2023-09-17
    C#
  • Bootstrap3如何实现进度条
    这篇文章将为大家详细讲解有关Bootstrap3如何实现进度条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。基本样式<div class="pr...
    99+
    2022-10-19
  • html5如何实现进度条
    本篇内容主要讲解“html5如何实现进度条”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5如何实现进度条”吧! 在html5...
    99+
    2022-10-19
  • 如何利用CSS3实现进度条
    这篇文章主要介绍了如何利用CSS3实现进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图如下:  第一种姿势如下...
    99+
    2022-10-19
  • css横向进度条和竖向进度条如何实现
    这篇文章将为大家详细讲解有关css横向进度条和竖向进度条如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、横向进度条<html><head><title>横向进...
    99+
    2023-06-08
  • python怎么使用tqdm库实现循环打印进度条
    1. while 循环Python的while循环可以打印进度条,可以使用tqdm这个库来实现。tqdm是一个用于在Python中添加进度条的库,它可以很容易地集成到while循环中。下面是一个简单的示例,它使用while循环和tqdm库来...
    99+
    2023-05-21
    Python tqdm
  • Android如何实现pk进度条
    要实现Android上的PK进度条,可以使用ProgressBar控件来实现。以下是一个简单的示例:1. 在XML布局文件中添加Pr...
    99+
    2023-08-12
    Android
  • Jupyter Notebook如何实现进度条
    这篇文章主要介绍了Jupyter Notebook如何实现进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。进度条可以使用python外部...
    99+
    2022-10-19
  • python控制台中实现进度条功能
    我们大多数人都希望写一些简单的python脚本的同时都想能够在程序运行的过程中实现进度条的功能以便查看程序运行的速度或者进度。今天就和大家探讨这个问题:如何在python控制台中实现进度条功 进度条最主要的...
    99+
    2022-06-04
    控制台 进度条 功能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作