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)