Rinne's Blog

Back

普通方式#

在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完成!")
python

使用tqdm库#

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

from tqdm import tqdm
import time

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

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("完成!")
python

bar_format 参数详解

  • {l_bar}: 左侧的标签部分,包括描述和百分比
  • {bar}: 进度条本身
  • {n_fmt}: 当前进度数值
  • {total_fmt}: 总进度数值
  • {elapsed}: 已消耗时间
  • {remaining}: 剩余时间
©
Python学习笔记:显示进度条
https://astro-pure.js.org/blog/technology/python-notes/tqdm
Author Rinne
Published at 2025年11月2日
Comment seems to stuck. Try to refresh?✨