Post

Python Tricks

Python Tricks

精美的进度条

受够了 tqdm ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def mtqdm(iterable, desc="Processing..."):
    from rich.progress import Progress, SpinnerColumn, BarColumn, TextColumn, TimeElapsedColumn, TimeRemainingColumn
    with Progress(
        SpinnerColumn(),
        TextColumn("[progress.description]{task.description}"),
        BarColumn(),
        TextColumn("{task.percentage:>3.0f}%"),
        TimeElapsedColumn(),
        # TimeRemainingColumn(),
    ) as progress:
        task = progress.add_task(desc, total=len(iterable))
        for item in iterable:
            yield item
            progress.update(task, advance=1)

装饰器

不知道是不是卡了?

1
2
3
4
5
6
7
8
9
def bind_start_end_log(text: str):
    def decorator(func):
        def wrapper(*args, **kwargs):
            from loguru import logger
            logger.info(f"START {text}")
            func(*args, **kwargs)
            logger.success(f"END {text}")
        return wrapper
    return decorator
This post is licensed under CC BY 4.0 by the author.