如何将彩色文本打印到终端

如何在 Python 中将彩色文本输出到终端?

已邀请:
2330

这在某种程度上取决于您在哪个平台上。最常见的方法是打印 ANSI 转义序列。举个简单的例子,这里有一些来自Blender 构建脚本的Python 代码:

class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
要使用这样的代码,您可以执行以下操作:

print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)
或者,使用 Python 3.6+:

print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")
这将适用于包括 OS X、Linux 和 Windows 在内的 Unix(前提是您使用ANSICON,或者在 Windows 10 中,前提是您启用了VT100 仿真)。有用于设置颜色、移动光标等的 ANSI 代码。

如果您打算对此感到复杂(听起来就像您正在编写游戏一样),您应该查看“ curses ”模块,它为您处理了很多复杂的部分。在Python的诅咒HOWTO是一个很好的介绍。

如果您没有使用扩展 ASCII(即,不在 PC 上),您会被 ASCII 字符困在 127 以下,而 '#' 或 '@' 可能是块的最佳选择。如果您可以确保您的终端使用的是 IBM扩展 ASCII 字符集,那么您还有更多选择。字符 176、177、178 和 219 是“块字符”。

一些现代基于文本的程序,例如“矮人堡垒”,以图形模式模拟文本模式,并使用经典 PC 字体的图像。您可以在Dwarf Fortress Wiki上找到其中一些可以使用的位图,请参阅(用户制作的图块集)。

在文本模式设计大赛已在文本模式下做图形更多的资源。

要回复问题请先登录注册