富文本¶

发布时间 2023-09-13 12:49:43作者: linux星

Rich 有一个类,可用于用颜色和样式属性标记字符串。您可以在接受字符串的任何位置使用 Text 实例,这使您可以对演示文稿进行大量控制。

您可以将此类视为具有标记文本区域的字符串。与内置的 不同,Text 实例是可变的,并且大多数方法就地操作而不是返回新实例。str

向文本添加样式的一种方法是将样式应用于开始和结束偏移量的方法。下面是一个示例:

from rich.console import Console
from rich.text import Text

console = Console()
text = Text("Hello, World!")
text.stylize("bold magenta", 0, 6)
console.print(text)

这将在终端上打印“Hello, World!”,第一个单词以粗体洋红色显示。

或者,可以通过调用将字符串和样式添加到文本末尾来构造样式文本。下面是一个示例:

text = Text()
text.append("Hello", style="bold magenta")
text.append(" World!")
console.print(text)

如果要使用已使用 ANSI 代码格式化的文本,请调用以将其转换为对象:Text

text = Text.from_ansi("\033[1mHello, World!\033[0m")
console.print(text.spans)

由于从部件构建文本实例是一项常见要求,因此 Rich 提供了将组合字符串或字符串和 Style 对,并返回文本实例。以下示例等效于上面的代码:

text = Text.assemble(("Hello", "bold magenta"), " World!")
console.print(text)

您可以使用或最终控制调用将样式应用于文本中的给定单词,以突出显示与正则表达式匹配的文本。

文本属性

Text 类具有许多参数,您可以在构造函数上设置这些参数来修改文本的显示方式。

  • justify应为“左”、“居中”、“右”或“全”,并将覆盖默认对齐行为。

  • overflow应为“折叠”、“裁剪”或“省略号”,并将覆盖默认溢出。

  • no_wrap如果文本比可用宽度长,则防止换行。

  • tab_size设置制表中的字符数。

文本实例几乎可以在富 API 中的任何位置用来代替纯字符串,这使您可以很好地控制文本在其他丰富可呈现对象中的呈现方式。例如,以下示例右对齐 中的文本:

from rich import print
from rich.panel import Panel
from rich.text import Text
panel = Panel(Text("Hello", justify="right"))
print(panel)