Python输出还可以这么花里胡哨,这个第三方库值得你了解一下

1. Python输出的基本方式

在 Python 中,输出可以使用 print() 函数实现,例如:

print('Hello, World!')

这会将字符串 "Hello, World!" 输出到控制台中。

通过 print() 函数,你可以输出字符串、数字、变量等各种类型的数据,如下所示:

score = 99

print('你的分数是:', score)

这会输出:你的分数是: 99

2. 使用第三方库 rich

虽然 print() 函数能够基本满足我们的输出需求,但对于一些需要更加美观的输出,我们就需要使用第三方库了。

在 Python 中,有很多优秀的第三方库可以用来美化输出,比如:coloramatermcolorprettytable等等。

而本文要介绍的是另一个出色的第三方库——rich。

2.1 rich 简介

rich 是一个 Python 库,可以用来为控制台输出提供高亮、格式化、图形化等多种功能。

相比于其他库,rich 功能更加强大、使用更加简单,甚至还能实现超过控制台上限的输出。

2.2 rich 安装

你可以使用 pip 命令安装 rich:

pip install rich

2.3 rich 基本使用

下面我们就来看一下 rich 的基本使用方法。

首先,我们需要将 rich 模块导入到我们的代码中:

from rich import print

这里的 print 函数是一个重载函数,所以 rich.print() 自动生成了新的函数,可以用来美化输出。

言归正传,下面是 rich 最基本的使用方法,它可以将字符串在控制台中以不同颜色输出:

from rich import print

print('[bold cyan]Hello, World![/bold cyan]')

print('[underline red]Hello, World![/underline red]')

上面的代码将会以不同的颜色和格式(加粗、下划线)输出字符串 "Hello, World!"

2.4 rich 更多使用方法

除了上述基本用法之外,rich 还提供了很多其他有用的功能。

2.4.1 结构化输出

在使用 rich 输出时,你可以使用 JSON 或 Python 的字典、列表等结构化数据。

下面是一个使用字典输出表格的例子:

from rich.console import Console

console = Console()

data = [

{'姓名': '小明', '年龄': 18, '性别': '男'},

{'姓名': '小红', '年龄': 19, '性别': '女'},

{'姓名': '小李', '年龄': 20, '性别': '男'}

]

console.table(data)

上面的代码将会输出一个类似以下的表格:

┏━━━━━┳━━━━━┳━━━━━━┓

┃ 姓名 ┃ 年龄 ┃ 性别 ┃

┡━━━━━╇━━━━━╇━━━━━━┩

│ 小明 │ 18 │ 男 │

│ 小红 │ 19 │ 女 │

│ 小李 │ 20 │ 男 │

└───────┴───────┴──────┘

当然,你也可以使用列表来输出表格。

2.4.2 进度条

进度条是一个用来展示进展情况的东西,在很多情况下都非常有用。

rich 提供了一个 Progress 类,可以方便地生成进度条。

from rich.progress import Progress

progress = Progress()

task = progress.add_task('[red]下载中...', total=100)

for i in range(100):

progress.update(task, advance=1)

print('下载完成')

上面的代码将会输出一个进度条,直到下载完成才会输出 下载完成

2.4.3 图形输出

rich 可以直接在控制台中输出图形,而不仅仅是普通的文本。

下面是一个绘制柱状图的例子:

from rich.console import Console

from rich.panel import Panel

from rich.syntax import Syntax

from rich.columns import Columns

console = Console()

data = [

{'name': 'a', 'value': 10},

{'name': 'b', 'value': 20},

{'name': 'c', 'value': 30},

{'name': 'd', 'value': 40},

{'name': 'e', 'value': 50},

]

chart = Columns([

Panel(

Syntax(' '.join(str(d['value']) for d in data), 'console'),

title='Value',

title_align='center',

border_style='green'

),

*[Panel('{}'.format(d['name']), title=d['name'], border_style='red') for d in data]

])

console.print(chart)

上面的代码将会输出一个柱状图:

┌────────────────────Value─────────────────────┬───a───┬───b───┬───c───┬───d───┬───e───┐

│ 10 20 30 40 50 │ │ │ │ │ │

└───────────────────────────────────────────────┴───────┴───────┴───────┴───────┴───────┘

2.4.4 更多功能

上述功能只是 rich 的冰山一角,rich 还有很多其他的功能,比如:

多种颜色

高亮显示

打印多种提示,如警告、错误等

控制打印输出的终端大小

多种格式化字符串

……

更多用法可以查看 rich 的官方文档

3. 总结

在 Python 中,输出是非常重要的一部分。

虽然 Python 自带的 print() 函数能够满足我们的基本需求,但对于一些需要更加美观、复杂的输出,我们就需要使用第三方库了。

而在众多的输出库中,rich 无疑是其中一个出色的代表,它提供了丰富的功能,能够在命令行中提供美观、交互性强的输出。

如果你正在寻找一个出色的 Python 输出库,不妨试一试 rich。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签