Background

Python学习:显示进度条

323
2 分钟阅读

普通方式

在Python中,可以通过简单的循环和打印语句来显示进度条。例如:

import time
import sys
def progress_bar(current, total, bar_length=50):
percent = current / total
arrow = '=' * int(percent * bar_length)
spaces = ' ' * (bar_length - len(arrow))
sys.stdout.write(f"\r[{arrow}{spaces}] {int(percent * 100)}%")
sys.stdout.flush()
# 测试进度条
for i in range(101):
progress_bar(i, 100)
time.sleep(0.1)
print("\n完成!")

使用tqdm库

tqdm 是一个非常流行的Python库,用于在长时间运行的循环中显示进度条。它使用起来非常简单,只需将可迭代对象传递给 tqdm 即可。例如:

from tqdm import tqdm
import time
for i in tqdm(range(200)):
time.sleep(0.1)
print("完成!")

tqdm 还支持多种功能,如自定义描述、动态调整进度条长度等。例如:

from tqdm import tqdm
import time
for i in tqdm(
range(100),
desc="处理进度", # 自定义描述
ncols=70, # 进度条宽度
bar_format="{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}]",
total=100, # 总数
unit="it", # 单位
leave=True, # 结束后保留进度条
disable=False, # 是否禁用进度条
):
time.sleep(0.1)
print("完成!")

bar_format 参数详解

  • {l_bar}: 左侧的标签部分,包括描述和百分比
  • {bar}: 进度条本身
  • {n_fmt}: 当前进度数值
  • {total_fmt}: 总进度数值
  • {elapsed}: 已消耗时间
  • {remaining}: 剩余时间
Python学习:显示进度条
/blog/26029910
作者
发布于
2025/11/2
许可协议
CC BY-NC-SA 4.0