HOWTO · Python
如何在 Python 中打印粗体文本
了解如何使用 ANSI 转义序列或样式库,在 Python 终端中打印粗体文本。
本页内容
要在 Python 终端中打印粗体文本,可以用 ANSI 转义序列包住文本,也可以使用 termcolor、colorama、simple_colors 或 click 等样式库。这些方法用于设置终端输出的样式;若要在文档或网页中显示粗体文本,应使用 Markdown 或 HTML。以下示例针对终端文本,其显示效果取决于终端是否支持 ANSI 样式。
在 Python 中使用 ANSI 转义序列方法打印粗体文本
在支持 ANSI 样式的终端中,可以直接使用 ANSI 转义序列更改文本格式,无需安装 Python 依赖。序列 \033[1m 开始粗体样式,\033[0m 则恢复默认样式。可以用一个可复用的类集中管理这两个序列:
class BoldText:
BOLD = "\033[1m"
RESET = "\033[0m"
print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
[1mPython Programming![0m
在样式文本后使用重置序列,避免终端将该格式延续到后续输出。只有支持 ANSI 样式的终端才会解释这些转义序列。
在 Python 中使用类打印粗体文本
上面的 BoldText 类提供了 BOLD 和 RESET 常量,因此可以在其他 print 调用中重复使用相同的格式。每段带样式的文本末尾都应放置重置序列。这个类只会发送 ANSI 控制序列,并不会检测输出目标能否正确显示它们。
在 Python 中使用 termcolor 模块打印粗体文本
termcolor 是一个用于设置终端文本样式的包,colored() 是其中的格式化函数。使用 python -m pip install termcolor 安装后,可以调用 colored("Python", "green", attrs=["bold"]),再打印返回的字符串。此工作流使用的 Python 运行环境未安装该包,因此这里只以内联方式展示调用,而不是提供可执行示例。
若要在提供的运行环境中尝试相同的终端效果,可以使用下面这个自包含的 ANSI 替代方案。它不会调用 termcolor;上面的包专用调用仅作说明,需在自己的环境中安装该包后才能运行。
class BoldText:
BOLD = "\033[1m"
RESET = "\033[0m"
print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
[1mPython Programming![0m
在 Python 中使用 colorama 包打印粗体文本
colorama 可帮助应用程序在不同终端中使用 ANSI 样式,也能改善 Windows 上的 ANSI 处理。使用 python -m pip install colorama 安装后,从 colorama 导入 Style 和 init,调用 init(),然后打印 f"{Style.BRIGHT}Bold Text{Style.RESET_ALL}"。Style.BRIGHT 用于强调文本,Style.RESET_ALL 则恢复默认样式。配置的 Python 运行环境没有安装此包,因此这里以内联方式说明用法,不作为可执行示例。初始化并不能保证所有控制台或输出目标都会显示粗体。
下面这个可直接在运行环境中使用的替代方案会直接发送等效的 ANSI 样式。它不会调用 colorama;若要测试该包的平台处理功能,请在安装后使用上面的包调用。
class BoldText:
BOLD = "\033[1m"
RESET = "\033[0m"
print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
[1mPython Programming![0m
在 Python 中使用 simple-color 包打印粗体文本
该发行包的安装名称是 simple-colors,导入名称是 simple_colors。使用 python -m pip install simple-colors 安装后,可以调用 simple_colors 中的 green("Python", "bold")。此工作流的 Python 运行环境没有安装该包,因此这里只以内联方式展示调用,且未在此处运行。其样式显示同样取决于终端是否支持。
下面是一个使用标准库实现相同粗体终端文本效果、可直接运行的替代方案。上面的 simple_colors 调用仅作说明;要运行它,需要先安装 simple-colors。
class BoldText:
BOLD = "\033[1m"
RESET = "\033[0m"
print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
[1mPython Programming![0m
在 Python 中使用 click 库打印粗体文本
如果命令行应用已经使用 click,可以通过 python -m pip install click 安装它。click.echo(click.style("Bold Text", bold=True)) 会为字符串设置样式并将其写入终端。配置的 Python 运行环境没有安装 click,因此这里以内联方式展示用法,而不是提供可执行示例。和其他库一样,样式能否显示取决于输出环境。
下面的独立替代方案直接使用 ANSI,无需安装 click 即可运行。上面的 click.style() 和 click.echo() 调用仅作说明;安装 click 后即可运行这些调用。
class BoldText:
BOLD = "\033[1m"
RESET = "\033[0m"
print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
[1mPython Programming![0m
结论
无需依赖时可以直接使用 ANSI 序列;如果需要复用格式常量,可以将它们放在一个小类中。termcolor、colorama、simple_colors 和 click 则提供了更高层次的辅助功能。若终端不会解释 ANSI 样式,转义序列可能会以普通文本显示,因此应根据目标环境选择合适的方法。