【币】【更新中】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:新增“输入”。
太感人了,终于有人用这个不成熟的小工具了,55555{:9_234:}爱你嗷 {:9_240:}
{:10_288:} cao,本来我想发的{:10_277:} 歌者文明清理员 发表于 2023-5-26 22:09
cao,本来我想发的
{:10_277:} sfqxx 发表于 2023-5-26 21:18
求评分~评分就发币~https://fishc.com.cn/static/image/smiley/ARU/aru-1x-3_055.png 看看 好东西啊!! 这么多币还没人{:10_244:}
@学习编程中的Ben @歌者文明清理员 @sfqxx @Mike_python小 @zhangjinxuan @元豪 @不二如是 @额外减小 @Hello. liuhongrun2022 发表于 2023-5-27 09:20
这么多币还没人
@学习编程中的Ben @歌者文明清理员 @sfqxx @Mike_python小 @zhangjinxuan @元豪 ...
你阿特半天就不啊特我,亏我还给你评了三贡献{:10_247:} 一点沙 发表于 2023-5-27 09:27
你阿特半天就不啊特我,亏我还给你评了三贡献
@一点沙 Twilight6 发表于 2023-5-26 21:15
太感人了,终于有人用这个不成熟的小工具了,55555爱你嗷
感谢大神支持{:10_254:} 币!! 支持 激动人心,无法言表! 这么多币有啥用?10%谁来{:10_244:} 元豪 发表于 2023-5-27 09:52
这么多币有啥用?10%谁来
改成30%了 元豪 发表于 2023-5-27 09:52
这么多币有啥用?10%谁来
我很赞同 试试运气 鱼币飞来!