常规的同步方法和for循环的进度,使用tqdm能很直观地展示进度;而一些异步协程或难以预估进度的,可以考虑使用rich.progress
Ref: https://typer.tiangolo.com/tutorial/progressbar/#progress-bar
案例一:左侧展示旋转的小圈圈
from contextlib import contextmanager
from typing import Generator
# pip install asynctor httpx rich
import asynctor
import httpx
from rich.progress import Progress, SpinnerColumn
@contextmanager
def progressbar(
msg: str, color: str = "cyan", transient=False
) -> Generator[None, None, None]:
"""Spinner风格的七彩进度条
:param msg: 进度条描述文字
:param color: 颜色,如:'blue'
:param transient: 任务完成后是否清除进度条信息
"""
with Progress(
SpinnerColumn(), *Progress.get_default_columns(), transient=