如何在 Python 中将彩色文本输出到终端?
这在某种程度上取决于您所在的平台。最常见的方法是打印 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 Curses HowTO是一个很好的介绍。
如果您不使用扩展 ASCII(即,不在 PC 上),您会被 127 以下的 ASCII 字符卡住,而“#”或“@”可能是您最好的选择。如果您可以确保您的终端使用的是 IBM扩展 ASCII 字符集,那么您有更多选择。字符 176、177、178 和 219 是“block characters”。