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

新手上路,请多包涵

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

原文由 aboSamoor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
1 个回答

这在某种程度上取决于您所在的平台。最常用的方法是打印 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 emulation )。有用于设置颜色、移动光标等的 ANSI 代码。

如果你想把它弄复杂(如果你正在写游戏的话,听起来就像是这样),你应该看看“ curses ”模块,它为你处理了很多复杂的部分。 Python Curses HowTO 是一个很好的介绍。

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

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

Text Mode Demo Contest 有更多用于在文本模式下制作图形的资源。

原文由 joeld 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题