progressive-bar
Python 进度条模块
过年水一篇
Python 中有几个流行的进度条模块,它们可以帮助在执行长时间运行的任务时提供进度反馈。一些常用的进度条模块有 tqdm,progress,alive-pprogress,PySimpleGUI 等。本篇文章主要整理一下 tqdm 的使用方法:
tqdm(range(i)) 使用:
1 | |
tqdm 的 trange 方法: trange 是 tqdm 提供的一个方便函数,它返回一个迭代器, trange(i) 等价于 tqdm(range(i))
当然有更好看的进度条,使用 from tqdm.rich import tqdm 可以得到一个彩色的美化过的进度条,from tqdm.tk import tqdm 可以得到一个基于 tkiter 的进度条
面向对象的 tqdm:
-
创建
tqdm对象: 你可以创建一个tqdm对象,传入你想要迭代的可迭代对象,并可选地提供一些参数,如总迭代次数、描述信息等。1
2
3
4# 创建一个进度条对象
pbar = tqdm(range(100), desc="Processing")
# 创建一个进度条对象,包装一个范围对象,使用 trange 函数
pbar = tqdm.trange(100, desc="Counting") -
迭代
tqdm对象: 你可以像迭代普通迭代器一样迭代tqdm对象,进度条会自动更新。1
2
3for i in pbar:
# 在这里执行你的任务
pass -
更新进度条: 如果你需要手动更新进度条,可以使用
update方法。1
2
3
4
5with tqdm(total=100) as pbar:
for i in range(10):
# 执行一些耗时的操作
time.sleep(0.1)
pbar.update(10) # 更新进度条,每次增加10 -
设置进度条描述: 你可以在迭代过程中动态设置进度条的描述信息。
1
2
3
4with tqdm(total=100) as pbar:
for i in range(100):
# 执行任务
pbar.set_description(f"Processing {i+1}") -
使用
tqdm的其他方法:tqdm提供了一些其他方法,如update(更新进度条)、refresh(刷新进度条)、close(关闭进度条)等。1
2
3pbar.update(10) # 更新进度条
pbar.refresh() # 刷新进度条
pbar.close() # 关闭进度条