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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?