liuhongrun2022 发表于 2023-5-26 20:47:20

【币】【更新中】Rich 库的简单使用

本帖最后由 liuhongrun2022 于 2023-7-28 18:30 编辑

温馨提示:
使用 Twilight6 大神的 MarDisTextConverter 源文本转换器 生成格式。


static/image/hrline/1.gif

介绍



Rich 是一个 Python 库,可以为你在终端中提供富文本和漂亮、精美的格式。

使用 Rich API 可以很容易的在终端输出添加各种颜色和不同风格。它可以绘制漂亮的表格,进度条,Markdown,突出显示语法的源代码及回溯等等,优秀的功能不胜枚举。

注意:作者没有更新完成,这里展示的功能只是 Rich 库的冰山一角,有时间就会更新。{:5_95:}

https://pythondict-1252734158.file.myqcloud.com/home/www/pythondict/wp-content/uploads/2021/07/2021070409380422.png


安装



安装 Rich 库

pip install rich
这个库需要 Python 3.7.0 以上版本才能运行。

系统低于 Windows 10 请自行忽略以下内容:



安装 Windows Terminal

在 Windows 10 环境下,推荐使用 Windows Terminal(Windows 终端)。

比原生的 cmd.exe 支持更多颜色和样式。

Windows 11 自带 Windows 终端,如不是 Windows 11,请在 Microsoft Store 搜索 Windows Terminal。

请在“运行”窗口中输入 wt 启动一个新的 Windows Terminal 终端。

安装完图示(如下):

https://t4.wodetu.cn/2023/05/13/fed1470053761860278d82ff573a430a.png


一个示例



from rich.console import Console
console = Console()
console.print(locals())

注意:执行程序时请用终端执行,直接在编辑器里执行是看不到任何效果。

运行:

https://t4.wodetu.cn/2023/05/13/746cc3355c19aa7e816af6aee1e491e6.png

可以看到,输出是一个字典,print 不仅格式化字典,还以语法高亮的形式打印了出来。

我们再比对一下 Python 的 print:

https://t1.wodetu.cn/2023/05/13/a83d96fb11486888ea0b3cd26929a335.png


基本用法



先构建一个 Console 类:

from rich.console import Console
console = Console()

控制台标记

在学习代码之前,我们要学习控制台标记,用于控制文字的样式。

控制台标记可用于 print 和 log。

比如要打印一个蓝色的文字,请使用以下代码(前面已经构建过 Console 类了):

console.print("蓝色的文字")

打印粗体文字:

console.print("Hello,World")

打印斜体文字:

console.print("斜体文字")

打印下划线:

console.print("下划线")

打印可点击的链接(原生 cmd.exe 不支持):

console.print("点击进入鱼C论坛")

如果你想打印文本,而不是控制台标记,请使用反斜杠:

console.print("这不是标签\")

打印删除线:

console.print("删除")

打印闪动的文字(原生 cmd.exe 不支持):

console.print("下划线")

打印背景:

console.print("白色背景")

你也可以对多个标签进行组合:

console.print("要素过多")

结束标签的简写:

console.print("文字[/]")

和 BB Code 十分甚至九分的像。

你也可以使用 style 属性:

console.print("文字", style="blue")

打印

使用 print 方法。

打印普通数据类型:

console.print("")
https://t1.wodetu.cn/2023/05/30/ac98b1c0e1fc6a270af066b90e71f7a1.png

console.print(locals())
https://t4.wodetu.cn/2023/05/13/746cc3355c19aa7e816af6aee1e491e6.png

打印带颜色的文本:

console.print("文字", style='red')
https://t3.wodetu.cn/2023/05/30/7fc20319a301f117a2a0108df35b842f.png

console.print("文字[/]")
https://t3.wodetu.cn/2023/05/30/7fc20319a301f117a2a0108df35b842f.png

打印 Emoji:

console.print(":smliey:")

此处演示为笑脸。

你也可以输入命令 python -m rich.emoji 来查看全部的 Emoji。

日志

使用 log 方法。

与 print 基本相同,但是会以日志的形式打印。

console.log("Hello, World!")
https://t4.wodetu.cn/2023/05/30/ad5d421cd757f212b6a62466f61e19f0.png

打印 JSON

使用 print_json 方法。

console.print_json('{"name":"Fishc", "age":13, "site":null}')
https://t1.wodetu.cn/2023/05/30/631f7a75515f2f1bb8870886e8e96062.png

你也可以在日志中写入 JSON:

from rich.json import JSON
console.log(JSON('{"name":"Fishc", "age":13, "site":null}'))
https://t3.wodetu.cn/2023/05/30/cf2f70c119b0cc0df0007652301c84e5.png

直接使用命令打印 JSON 文件:

python -m rich.json file.json

低级打印

使用 out 方法。

类似于原生的 print,不能打印高级数据类型。

分隔线

使用 rule 方法。

console.rule("Chapter 2")
https://t4.wodetu.cn/2023/05/30/7c6bfdc2586323e2d230e2b2bb9d2939.png

设置方向:

使用 align 参数。

console.rule("Chapter 2", align='left')
https://t1.wodetu.cn/2023/05/30/9978786d51183e015959e15b7d5571b5.png

状态

使用 status 方法。

你可以输入 python -m rich.status 来观赏其功能。

import time
with console.status("Working...[/]"):
    for i in range(10):
      time.sleep(0.2)

该程序会展示两秒的动画,然后停止。

若要改变动画请输入 python -m rich.spinner 来查看全部的动画。

比如我要设置其他动画,可以设置 spinner 属性。

import time
with console.status("Working...[/]", spinner="line"):
    for i in range(10):
      time.sleep(0.2)
运行时,可以看见动画变成了一条线。

对齐

使用 justlify 参数。

print 和 log 都支持 justlify 参数,此参数可以设置对齐。

console.print("FishC", style="red on white")
console.print("-" * 40)
console.print("FishC", justify="left", style="red on white")
console.print("-" * 40)
console.print("FishC", justify="right", style="red on white")
console.print("-" * 40)
console.print("FishC", justify="center", style="red on white")
https://t4.wodetu.cn/2023/06/11/3b90f986fe662228d243c4c1f96386ab.png

输入

和 Python 内置的 input 函数几乎一样,不过支持 Rich 所有的特性。

from rich.console import Console
console = Console()
name = console.input("What is your name[/]? :smiley: ")
console.print("Hello[/],%s!" % name)

https://t3.wodetu.cn/2023/07/28/9870ebf38c0e2b37015a7475e3a3923a.png

将输出保存为 HTML 文本 或者 SVG 图片

lz 去吃饭了,待更新 ...


static/image/hrline/1.gif

求评分!
https://xxx.ilovefishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif

日志



2023-5-26:刚发帖子。

2023-5-忘了:增加了一些图片。

2023-6-11:新增“对齐”。

2023-7-28:新增“输入”。

Twilight6 发表于 2023-5-26 21:15:44


太感人了,终于有人用这个不成熟的小工具了,55555{:9_234:}爱你嗷 {:9_240:}

sfqxx 发表于 2023-5-26 21:18:46

{:10_288:}

歌者文明清理员 发表于 2023-5-26 22:09:18

cao,本来我想发的{:10_277:}

liuhongrun2022 发表于 2023-5-27 06:25:47

歌者文明清理员 发表于 2023-5-26 22:09
cao,本来我想发的

{:10_277:}

liuhongrun2022 发表于 2023-5-27 06:40:06

sfqxx 发表于 2023-5-26 21:18


求评分~评分就发币~https://fishc.com.cn/static/image/smiley/ARU/aru-1x-3_055.png

蓝屏爱好者 发表于 2023-5-27 08:14:55

看看

kerln888 发表于 2023-5-27 09:07:57

好东西啊!!

liuhongrun2022 发表于 2023-5-27 09:20:56

这么多币还没人{:10_244:}
@学习编程中的Ben @歌者文明清理员 @sfqxx @Mike_python小 @zhangjinxuan @元豪 @不二如是 @额外减小 @Hello.

一点沙 发表于 2023-5-27 09:27:32

liuhongrun2022 发表于 2023-5-27 09:20
这么多币还没人
@学习编程中的Ben @歌者文明清理员 @sfqxx @Mike_python小 @zhangjinxuan @元豪 ...

你阿特半天就不啊特我,亏我还给你评了三贡献{:10_247:}

liuhongrun2022 发表于 2023-5-27 09:31:02

一点沙 发表于 2023-5-27 09:27
你阿特半天就不啊特我,亏我还给你评了三贡献

@一点沙

liuhongrun2022 发表于 2023-5-27 09:42:04

Twilight6 发表于 2023-5-26 21:15
太感人了,终于有人用这个不成熟的小工具了,55555爱你嗷

感谢大神支持{:10_254:}

sfqxx 发表于 2023-5-27 09:45:31

币!!

sfqxx 发表于 2023-5-27 09:46:34

支持

sfqxx 发表于 2023-5-27 09:52:02

激动人心,无法言表!

元豪 发表于 2023-5-27 09:52:50

这么多币有啥用?10%谁来{:10_244:}

liuhongrun2022 发表于 2023-5-27 09:53:34

元豪 发表于 2023-5-27 09:52
这么多币有啥用?10%谁来

改成30%了

sfqxx 发表于 2023-5-27 09:55:29

元豪 发表于 2023-5-27 09:52
这么多币有啥用?10%谁来

我很赞同

sfqxx 发表于 2023-5-27 09:56:10

试试运气

sfqxx 发表于 2023-5-27 09:56:38

鱼币飞来!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【币】【更新中】Rich 库的简单使用