rich常用方法

from rich.prompt import Prompt
# 简单的输入提示
user_input = Prompt.ask("请输入你的名字")
print(f"你好, {user_input}")
from rich import print
# 打印富文本
print("[bold red]警告:[/bold red] 这是一个警告信息")
# 单一进度条
import time
from rich.progress import track

for i in track(range(20), description="正在加载..."):
    time.sleep(1)  # 模拟正在完成的工作
    """通过遍历序列来跟踪进度。

    Args:
        sequence (Iterable[ProgressType]): 要迭代的序列(必须支持“len”)。
        description (str, optional): 进度条旁边显示任务说明。默认为“工作”。
        total: (float, optional): 总步数。默认值为 len(sequence)。
        auto_refresh (bool, optional): 自动刷新,禁用以在每次迭代后强制刷新。默认值为 True。
        transient: (bool, optional): 清除退出时的进度。默认值为 False。
        console (Console, optional): 要写入的控制台。默认创建内部控制台实例。
        refresh_per_second (float): 每秒刷新进度信息的次数。默认值为 10。
        style (StyleType, optional): bar背景的样式。默认为“bar.back”。
        complete_style (StyleType, optional): 已完成条形图的样式。默认值为“bar.complete”。
        finished_style (StyleType, optional): bar完成后的样式。默认为“bar.finished”。
        pulse_style (StyleType, optional): pulsing bars的样式。默认为“bar.pulse”。
        update_period (float, optional): 调用 update() 之间的最短时间(以秒为单位)。默认值为 0.1。
        disable (bool, optional): 禁用进度显示。
        show_speed (bool, optional): 如果总计未知,则显示速度。默认值为 True。
    Returns:
        Iterable[ProgressType]: 序列中值的可迭代对象。

    """
# 多个进度条
import time

from rich.progress import Progress

with Progress() as progress:

    task1 = progress.add_task("[red]下载...", total=1000)
    task2 = progress.add_task("[green]加载...", total=1000)
    task3 = progress.add_task("[cyan]Cooking...", total=1000)
    """更新与任务关联的信息。

        Args:
            task_id (TaskID): 任务 ID(由 add_task 返回)。
            total (float, optional): 更新 task.total(如果不是 None)。
            completed (float, optional): 如果不是 None,则更新 task.completed。
            advance (float, optional): 如果不是 None,则向 task.completed 添加一个值。
            description (str, optional): 如果不是“无”,则更改任务描述。
            visible (bool, optional): 如果不是 None,则设置可见标志。
            refresh (bool): 强制刷新进度信息。默认值为 False。
            **fields (Any): 渲染所需的其他数据字段。
        """

    while not progress.finished:
        progress.update(task1, advance=0.5)
        progress.update(task2, advance=0.3)
        progress.update(task3, advance=0.9)
        time.sleep(0.02)

#表格

from time import sleep

from rich.table import Column #导入table中的列
from rich.progress import Progress, BarColumn, TextColumn

text_column = TextColumn("{task.description}", table_column=Column(ratio=1))
bar_column = BarColumn(bar_width=None, table_column=Column(ratio=2))
progress = Progress(text_column, bar_column, expand=True)
"""定义 ~Table 中的列。

    Args:
        title (Union[str, Text], optional): 在顶部呈现的表的标题。默认值为 None。
        caption (Union[str, Text], optional): 下面呈现的表格标题。默认值为 None。
        width (int, optional): 表格的字符宽度,或自动适合的“无”。默认值为 None。
        min_width (Optional[int], optional): 表的最小宽度,或“无”表示没有最小宽度。默认值为 None。
        box (box.Box, optional): box.py 中的一个常量用于绘制边缘(参见ref:'appendix_box'),或者 ''None'' 表示没有框线。默认为框。HEAVY_HEAD。
        safe_box (Optional[bool], optional): 禁用在具有*光栅*字体的 Windows 旧版终端上不显示的框字符。默认值为 True。
        padding (PaddingDimensions, optional): 单元格的填充(顶部、右侧、底部、左侧)。默认值为 (0, 1)。
        collapse_padding (bool, optional): 启用单元格周围填充的折叠。默认值为 False。
        pad_edge (bool, optional): 启用边单元格的填充。默认值为 True。
        expand (bool, optional): 如果为“True”,则展开表以适合可用空间,否则将自动计算表宽度。默认值为 False。
        show_header (bool, optional): 显示标题行。默认值为 True。
        show_footer (bool, optional): 显示页脚行。默认值为 False。
        show_edge (bool, optional): 在桌子外面画一个方框。默认值为 True。
        show_lines (bool, optional): 在每一行之间画线。默认值为 False。
        leading (bool, optional): 行之间的空行数(不包括“show_lines”)。默认值为 0。
        style (Union[str, Style], optional): 表的默认样式。默认为“none”。
        row_styles (List[Union, str], optional): 可选的行样式列表,如果给出了多个样式,则样式将交替出现。默认值为 None。
        header_style (Union[str, Style], optional): 标题的样式。默认为“table.header”。
        footer_style (Union[str, Style], optional): 页脚的样式。默认为“table.footer”。
        border_style (Union[str, Style], optional): 边框的样式。默认值为 None。
        title_style (Union[str, Style], optional): 标题的样式。默认值为 None。
        caption_style (Union[str, Style], optional): 标题的样式。默认值为 None。
        title_justify (str, optional): 标题的对齐方法。默认为“center”。
        caption_justify (str, optional): 标题的对齐方法。默认为“center”。
        highlight (bool, optional): 突出显示单元格内容(如果是 str)。默认值为 False。
    """
"""呈现自动更新的进度条(Progress)。

    Args:
        console (Console, optional): 可选控制台实例。默认情况下,内部控制台实例将写入 stdout。
        auto_refresh (bool, optional): 启用自动刷新。如果禁用,则需要调用 'refresh()'。
        refresh_per_second (Optional[float], optional): 每秒刷新进度信息的次数,或使用默认值 (10) 的“无”(None) 次数。默认值为 None。
        speed_estimate_period: (float, optional): 用于计算速度估计值的时间段(以秒为单位)。默认值为 30。
        transient: (bool, optional): 清除退出时的进度。默认值为 False。
        redirect_stdout: (bool, optional): 启用 stdout 重定向,因此可以使用“print”。默认值为 True。
        redirect_stderr: (bool, optional): 启用 stderr 重定向。默认值为 True。
        get_time: (Callable, optional): 获取当前时间的可调用对象,或用于Console.get_time的 None。默认值为 None。
        disable (bool, optional): 禁用进度显示。默认值为 False
        expand (bool, optional): 展开任务表以适合宽度。默认值为 False。
    """
"""呈现可视进度条。

    Args:
        bar_width (Optional[int], optional): 条形宽度或全宽无。默认值为 40。
        style (StyleType, optional): bar背景的样式。默认为“bar.back”。
        complete_style (StyleType, optional): 已完成条形图的样式。默认值为“bar.complete”。
        finished_style (StyleType, optional): bar 完成的样式。默认为“bar.finished”。
        pulse_style (StyleType, optional): pulsing bars 的样式。默认为“bar.pulse”。
    """
with progress:
    for n in progress.track(range(100)):
        progress.print(n)
        sleep(0.1)

from rich.console import Console
from rich.table import Table

table = Table(title="星球大战电影")

table.add_column("时间", justify="right", style="cyan", no_wrap=True)
table.add_column("标题", style="magenta")
table.add_column("票房", justify="right", style="green")
"""向表中添加一列。

        Args:
            header (RenderableType, optional): 标题的文本或可呈现对象。
                默认值为“ ”。
            footer (RenderableType, optional): 页脚的文本或可呈现。
                默认值为“ ”。
            header_style (Union[str, Style], optional): “样式”作为标题,或“无”作为默认值。默认值为 None。
            footer_style (Union[str, Style], optional): “样式”表示页脚,“无”表示默认值。默认值为 None。
            style (Union[str, Style], optional): 列单元格的样式,或默认值的 None。默认值为 None。
            justify (JustifyMethod, optional): 单元格的对齐。默认为“left”。
            vertical (VerticalAlignMethod, optional): 垂直对齐,“顶部”、“中间”或“底部”之一。默认为“top”。
            overflow (OverflowMethod): 溢出法:“裁剪”、“折叠”、“省略号”。默认为“省略号”。
            width (int, optional): 所需的列宽(以字符为单位),或“无”以适合内容。默认值为 None。
            min_width (Optional[int], optional): 列的最小宽度,或“无”表示没有最小值。默认值为 None。
            max_width (Optional[int], optional): 列的最大宽度,或“无”表示没有最大值。默认值为 None。
            ratio (int, optional): 列的灵活比率(需要 ''Table.expand'' 或 ''Table.width'')。默认值为 None。
            no_wrap (bool, optional): 设置为“True”可禁用此列的换行。
        """

table.add_row("Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$952,110,690")
table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347")
table.add_row("Dec 15, 2017", "Star Wars Ep. V111: The Last Jedi", "$1,332,539,889")
table.add_row("Dec 16, 2016", "Rogue One: A Star Wars Story", "$1,332,439,889")
"""添加一行可渲染对象。

        Args:
            *renderables (None or renderable): 一行中的每个单元格都必须是可渲染对象(包括 str),
                或“无”表示空白单元格。
            style (StyleType, optional): 应用于整行的可选样式。默认值为 None。
            end_section (bool, optional): 结束一个部分并画一条线。默认值为 False。

        Raises:
            errors.NotRenderableError: 如果您添加了无法呈现的内容。
        """
console = Console()
console.print(table)

 

posted @ 2024-06-24 16:34  linux星  阅读(20)  评论(0编辑  收藏  举报