0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Rich:Python开发者的完美终端工具

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-31 15:33 次阅读

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

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

图片

我已经将本文全部示例存放在网盘中,在Python实用宝典公众号后台回复 rich示例 可以下载全部示例。

1.Rich 兼容性

Rich 适用于 Linux,OSX 和 Windows。可与新的 Windows 终端一起使用,Windows 的经典终端仅限 8 种颜色。

Rich 还可以与** Jupyter NoteBook **一起使用,而无需其他配置。

2.Rich 安装说明

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

**(可选1) **如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

**(可选2) **此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install rich

3.Rich 的 Print 功能

想毫不费力地将 Rich 的输出功能添加到你的Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 的自带功能的参数类似。你可以试试:

from rich import print

print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())

图片

可以看到,基于 rich 的 print 方法输出的内容都是带颜色、带重点的,相比于Python自带的 print 有明显的优势。

4.自定义 Console 控制台输出

想要对 Rich 终端内容进行更多的自定义设置,你需要导入并构造一个控制台对象:

from rich.console import Console

console = Console()

Console 对象含有一个 print 方法,它的界面与 python 内置的 print 功能相似。你可以试试:

console.print("Hello", "World!")

你可能已经料到,这时终端上会显示“ Hello World!”,请注意,与内置的“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。

有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。例子如下:

console.print("Hello", "World!", style="bold red")

输出如下图:

图片

这个范例一次只设置了一行文字的样式。如果想获得更细腻更复杂的样式,Rich 可以渲染一个特殊的标记,其语法类似于 bbcode。示例如下:

console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")

图片

5.Console 控制台记录

Console 对象具有一个 log() 方法,该方法具有与 print() 类似的界面,除此之外,还能显示当前时间以及被调用的文件和行。

默认情况下,Rich 将针对 Python 结构和 repr 字符串进行语法突出显示。如果你记录一个集合(如字典或列表),Rich 会把它漂亮地打印出来,使其切合可用空间。下面是其中一些功能的示例:

from rich.console import Console
console = Console()

test_data = [
    {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
    {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
    {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
]

def test_log():
    enabled = False
    context = {
        "foo": "bar",
    }
    movies = ["Deadpool", "Rise of the Skywalker"]
    console.log("Hello from", console, "!")
    console.log(test_data, log_locals=True)


test_log()

以上范例的输出如下:

图片

注意其中的 log_locals 参数会输出一个表格,该表格包含调用 log 方法的局部变量。

log 方法既可用于将长时间运行应用程序(例如服务器)的日志记录到终端,也可用于辅助调试。

Logging 处理程序

你还可以使用内置的处理类来对 Python 日志记录模块的输出进行格式化和着色。下面是输出示例:

图片

6. 表情符号

将名称放在两个冒号之间即可在控制台输出中插入表情符号。示例如下:

>> > console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3519

    浏览量

    88303
  • 终端
    +关注

    关注

    1

    文章

    1105

    浏览量

    29799
  • python
    +关注

    关注

    55

    文章

    4766

    浏览量

    84369
  • Rich
    +关注

    关注

    0

    文章

    3

    浏览量

    5754
  • 开发者
    +关注

    关注

    1

    文章

    547

    浏览量

    16970
收藏 人收藏

    评论

    相关推荐

    开发者福音!谷歌云APP引擎开始支持Python 3.7

    `Python表示很开心!谷歌云推出了第二代App Engine引擎标准runtime,这是对平台的重大升级,允许开发者使用最新版本流行语言、框架和库轻松运行web应用程序。想要尝鲜的小伙伴们,猛戳
    发表于 08-14 10:12

    OpenHarmony开发者文档

    此工程存放OpenHarmony提供的快速入门、开发指南、API参考等开发者文档,欢迎参与OpenHarmony开发者文档开源项目,与我们一起完善开发者文档。View English文
    发表于 04-23 18:08

    HarmonyOS开发者

    HarmonyOS开发者,HarmonyOS设备开发学习路线HarmonyOS 2.0如约而至,内存在128KB~128MB的终端设备厂商有福了,准备跃跃欲试,小编特意整理了HarmonyOS设备
    发表于 07-22 09:53

    绝对干货!HarmonyOS开发者日资料全公开,鸿蒙开发者都在看

    731HarmonyOS开发者日大会PPT资料全在这了,想要了解的小伙伴可以自行下载啦~下载资料的小伙伴还可以在评论区回复领取5个积分哦1、HarmonyOS 职业认证解读:该主题是开发者非常关注
    发表于 08-04 14:36

    AUTOSCOPE开发者工具

    AUTOSCOPE软件开发者工具包(SDK)提供了一些必要工具;包括AUTOSCOPE视频检测系统和现有交通管理应用程序的必要集成工具开发
    发表于 04-11 21:11 37次下载

    2018年受到众多开发者关注的7个Python类库

    几个还不太知名的库引起了Python开发者的关注。
    的头像 发表于 10-02 09:30 4736次阅读

    Python开发者最容易忽略的10个要点

    Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库。与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块。 在平时的工作中,Python开发者很容易犯一些
    的头像 发表于 01-02 10:13 971次阅读

    华为开发者大会2021 如何解决界面重复开发

    华为开发者大会2021上华为将发布最新的 HarmonyOS 3 开发者预览版、HMS Core 6 等一系列领先的开发技术、工具和平台,帮助开发者
    的头像 发表于 10-23 11:04 1059次阅读
    华为<b class='flag-5'>开发者</b>大会2021 如何解决界面重复<b class='flag-5'>开发</b>

    华为开发者大会2021 HarmonyOS 3开发者预览版

    华为开发者大会2021上,随着全新的 HarmonyOS 3 开发者预览版发布,HarmonyOS 应用与服务开发工具套件全家桶也全面升级,端到端帮助开发者高效率、低成本地完成跨端应用
    的头像 发表于 10-23 11:20 1321次阅读
    华为<b class='flag-5'>开发者</b>大会2021 HarmonyOS 3<b class='flag-5'>开发者</b>预览版

    华为开发者大会全程回顾

    华为开发者大会2021(Together)在东莞松山湖已经完美落幕,下面我们一起来看看2021华为开发者大会全程回顾的精彩亮点吧。
    的头像 发表于 10-26 11:16 3510次阅读

    2021 OPPO开发者大会:携手产业伙伴共建移动智能终端生态联盟

    2021 OPPO开发者大会:携手产业伙伴共建移动智能终端生态联盟 2021 OPPO开发者大会上介绍了:携手产业伙伴共建移动智能终端生态联盟。 责任编辑:haq
    的头像 发表于 10-27 11:14 1552次阅读
    2021 OPPO<b class='flag-5'>开发者</b>大会:携手产业伙伴共建移动智能<b class='flag-5'>终端</b>生态联盟

    2021 OPPO开发者大会:多终端对话式智能助手

    2021 OPPO开发者大会:多终端对话式智能助手 2021 OPPO开发者大会上介绍了多终端、多模态对话式智能助手。 责任编辑:haq
    的头像 发表于 10-27 11:38 1280次阅读
    2021 OPPO<b class='flag-5'>开发者</b>大会:多<b class='flag-5'>终端</b>对话式智能助手

    OpenHarmony开发者大会 开发工具分论坛:聚能量赢未来,工具助力应用创新

    日前,以“开源正当时,共赢新未来”为主题的开放原子开源基金会OpenHarmony开发者大会2023(以下简称“大会”)在北京举行,“开发工具分论坛”于当天下午召开。在本次论坛上,各位演讲嘉宾重点
    的头像 发表于 05-08 14:42 1232次阅读
    OpenHarmony<b class='flag-5'>开发者</b>大会 <b class='flag-5'>开发工具</b>分论坛:聚能量赢未来,<b class='flag-5'>工具</b>助力应用创新

    Python开发者必备工具

    这篇文章会提供一些优化代码的工具。会让代码变得更简洁,或者更迅速。 当然这些并不能代替算法设计,但是还是能让 Python 加速很多倍。 其实前面讲算法的文章,也有提到过。比如适用于双向队列
    的头像 发表于 10-16 11:14 439次阅读

    华为云开发者桌面全新发布 CodeArts IDE for Python,极致优雅云原生开发体验

    近日,华为云正式发布 CodeArts IDE for Python,这是一款内置华为自研 Python 语言服务,提供智能编程、灵活调试能力的可扩展桌面开发工具,为华为云开发者提供卓
    的头像 发表于 05-10 00:27 1177次阅读
    华为云<b class='flag-5'>开发者</b>桌面全新发布 CodeArts IDE for <b class='flag-5'>Python</b>,极致优雅云原生<b class='flag-5'>开发</b>体验