Python显示循环进度条

发布于:2025-02-10 ⋅ 阅读:(145) ⋅ 点赞:(0)

在 Python 中,可以使用多种方式显示循环的进度条。以下是几种常见的方法:


1. 使用 tqdm

tqdm 是一个非常流行的库,可以轻松地为循环添加进度条。

安装 tqdm
pip install tqdm
示例代码
from tqdm import tqdm
import time

# 示例:一个耗时循环
for i in tqdm(range(100)):
    time.sleep(0.1)  # 模拟耗时操作
输出效果
100%|████████████████████████████████████████| 100/100 [00:10<00:00,  9.90it/s]

2. 使用 rich

rich 是一个功能强大的库,支持漂亮的进度条和其他丰富的终端输出。

安装 rich
pip install rich
示例代码
from rich.progress import track
import time

# 示例:一个耗时循环
for i in track(range(100)):
    time.sleep(0.1)  # 模拟耗时操作
输出效果
[==================================================] 100%

3. 使用 progressbar2

progressbar2 是另一个用于显示进度条的库,功能丰富且灵活。

安装 progressbar2
pip install progressbar2
示例代码
import progressbar
import time

# 示例:一个耗时循环
bar = progressbar.ProgressBar(max_value=100)
for i in range(100):
    time.sleep(0.1)  # 模拟耗时操作
    bar.update(i + 1)
输出效果
100% (100 of 100) |########################| Elapsed Time: 0:00:10 Time: 0:00:10

4. 手动实现简单的进度条

如果你不想依赖第三方库,可以手动实现一个简单的进度条。

示例代码
import time
import sys

total = 100
for i in range(total):
    time.sleep(0.1)  # 模拟耗时操作
    progress = (i + 1) / total * 100
    sys.stdout.write(f"\rProgress: [{'=' * int(progress // 2):<50}] {progress:.1f}%")
    sys.stdout.flush()
print()  # 换行
输出效果
Progress: [=============================             ] 70.0%

5. 使用 alive-progress

alive-progress 是一个动态且美观的进度条库。

安装 alive-progress
pip install alive-progress
示例代码
from alive_progress import alive_bar
import time

# 示例:一个耗时循环
with alive_bar(100) as bar:
    for i in range(100):
        time.sleep(0.1)  # 模拟耗时操作
        bar()
输出效果
|████████████████████████████████████████| 100/100 [100%] in 10.0s (10.00/s)

6. 使用 IPythonwidgets(适用于 Jupyter Notebook)

如果你在 Jupyter Notebook 中运行代码,可以使用 IPythonwidgets 来显示进度条。

示例代码
from IPython.display import display
import ipywidgets as widgets
import time

progress = widgets.IntProgress(value=0, max=100)
display(progress)

for i in range(100):
    time.sleep(0.1)  # 模拟耗时操作
    progress.value = i + 1
输出效果

在 Jupyter Notebook 中显示一个动态进度条。


总结

  • 推荐使用 tqdm:简单易用,功能强大。
  • 如果需要更丰富的终端输出:可以选择 richalive-progress
  • 手动实现:适合简单的需求,无需安装第三方库。
  • Jupyter Notebook:使用 IPythonwidgets

根据你的需求选择合适的工具即可!


网站公告

今日签到

点亮在社区的每一天
去签到