python中4种进度条的使用方法

1.概述

在Python编程过程中,输出结果的时间可能需要一些可视化展示,常见的方式就是加入进度条。而Python中有很多模块可以用来实现进度条。下面我们介绍一下Python中4种不同的进度条的使用方法。

2.tqdm进度条

2.1 用法

tqdm是一个快速、可扩展的进度条模块。使用tqdm可以很方便地将程序的处理过程可视化。它主要提供了两种处理方式:手动和自动:

手动模式

from tqdm import tqdm

for i in tqdm(range(10)):

# some processing

自动模式

from tqdm.auto import tqdm

for i in tqdm(range(10)):

# some processing

这样,程序就会自动显示一条进度条,进度的更新会随着程序的运行而自动进行。

2.2 参数

tqdm提供了许多可调参数:

total:进度条的总步骤数(默认None)

desc:进度条描述(默认‘’)

ncols:进度条宽度,字符数(默认80)

bar_format:用于自定义输出格式(默认'{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, {rate_fmt}]')

3.progressbar进度条

3.1 用法

ProgressBar是Python中一个轻量级的进度条模块。安装方式可以使用pip进行安装:

pip install -q progressbar

实例:

import progressbar

import time

total = 100

#进度条组件

bar = progressbar.ProgressBar(maxval=total, \

widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()])

bar.start()

for i in range(total):

#进行某些处理

time.sleep(0.1)

# 更新进度条

bar.update(i+1)

bar.finish()

3.2 参数

progressbar.ProgressBar中可用的参数如下:

maxval:进度条的最大值(默认计时器的当前值)。所有progressbar类型都支持此参数。

widgets:进度条的元素:

fill:用来构建进度条的字符(默认'>')

marker:用来标记完成节点的字符(默认“.”)

left:进度条左侧的定界符(默认'[ ')

right:进度条右侧的定界符(默认' ]')

separator:进度条中的元素分隔符(默认'|')

progress format:指示器(默认'%(value)s/%(max_value)s')

percentage_format:使用百分数显示进度(默认'%(percentage).2f%%')。

sideways:如果设置为True,则向控制台添加多个进度条,并在水平方向(而不是垂直方向)上排列它们(默认false)

timer:计时器。计时器显示在进度条正上方,显示已用时间以及剩余时间的估计值。此参数的默认值为None。所有progressbar类型都支持此参数。

fd:要将进度条输出到的文件描述符。此参数的默认值为sys.stderr。

4.progress.cli进度条

4.1 用法

另一个常用的进度条模块是python-progressbar。python-progressbar是Python中进度条库progressbar的CLI版本。要使用这个模块,需要安装:

pip install -q progress

实例:

import time

from progress.bar import Bar

bar = Bar('Processing', max=20)

for i in range(20):

#进行一些处理

time.sleep(0.1)

bar.next()

bar.finish()

4.2 参数

progressbar.ProgressBar中可用的参数如下:

max:进度条的最大值(默认计时器的当前值)。所有progressbar类型都支持此参数。

fill:用来构建进度条的字符(默认是'>')

suffix:进度条右侧的可选后缀(默认是'')

bar_width:控制进度条的总宽度(默认是50)。

5.Asyncio进度条

5.1 用法

Asyncio库标准库包含了一个基于coroutine的进度条实现,其用法与tqdm相似。我们需要在引入模块时从tqdm.asyncio 中导入 tqdm 和 trange 。

实例:

import asyncio

from tqdm.asyncio import tqdm, trange

async def main():

pbar = tqdm(['a', 'b', 'c', 'd'])

for char in pbar:

await asyncio.sleep(0.5)

pbar.set_description("Processing %s" % char)

pbar.close()

for i in trange(4, desc='1st loop'):

for j in trange(5, desc='2nd loop'):

await asyncio.sleep(0.01)

for _ in trange(4, desc='3rd loop', leave=False):

for _ in trange(5, desc='4th loop', leave=False):

for _ in trange(50, desc='5th loop', leave=False):

await asyncio.sleep(0.001)

asyncio.run(main())

5.2 参数

tqdm.asyncio可以接受以下的参数:

desc:进度条的描述(默认‘’)

ncols:进度条的列数(默认无限制)

leave:是否保留进度条(默认false)

mininterval:进度条的最小更新间隔(以秒为单位,默认0.1秒)

maxinterval:进度条的最大更新间隔(以秒为单位,默认10秒)

6.结论

这篇文章介绍了Python中4种不同的进度条的使用方法和相关参数。这些进度条可以帮助您更方便、直观地展示程序的运行过程。通过运用这些进度条,您可以更清楚地了解程序在处理过程中的情况并控制程序的执行。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签