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() # 关闭进度条