1. Python输出的基本方式
在 Python 中,输出可以使用 print()
函数实现,例如:
print('Hello, World!')
这会将字符串 "Hello, World!"
输出到控制台中。
通过 print()
函数,你可以输出字符串、数字、变量等各种类型的数据,如下所示:
score = 99
print('你的分数是:', score)
这会输出:你的分数是: 99
2. 使用第三方库 rich
虽然 print()
函数能够基本满足我们的输出需求,但对于一些需要更加美观的输出,我们就需要使用第三方库了。
在 Python 中,有很多优秀的第三方库可以用来美化输出,比如:colorama
、termcolor
、prettytable
等等。
而本文要介绍的是另一个出色的第三方库——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。