在颜色的终端打印?

我如何在Python中输出彩色文本到终端? 代表固体块的最佳Unicode符号是什么?


这有点取决于你在哪个平台上。 最常见的方法是打印ANSI转义序列。 举一个简单的例子,下面是搅拌机构建脚本中的一些python代码:

class bcolors:
    HEADER = '33[95m'
    OKBLUE = '33[94m'
    OKGREEN = '33[92m'
    WARNING = '33[93m'
    FAIL = '33[91m'
    ENDC = '33[0m'
    BOLD = '33[1m'
    UNDERLINE = '33[4m'

要使用这样的代码,你可以做类似的事情

print bcolors.WARNING + "Warning: No active frommets remain. Continue?" 
      + bcolors.ENDC

这将适用于unix,包括OS X,Linux和Windows(假设您使用ANSICON,或者在Windows 10中启用了VT100仿真)。 有用于设置颜色,移动光标等的ansi代码。

如果你打算让这个问题变得复杂(而且听起来像是你在编写游戏),你应该看看“curses”模块,它为你处理了很多复杂的部分。 Python Curses HowTO是一个很好的介绍。

如果你没有使用扩展ASCII(即不在PC上),那么你就会陷入127以下的ASCII字符,'#'或'@'可能是你最好的选择。 如果您可以确保您的终端使用IBM扩展ascii字符集,则可以使用更多选项。 字符176,177,178和219是“块字符”。

一些现代的基于文本的程序,如“矮人堡垒”,在图形模式下模拟文本模式,并使用经典PC字体的图像。 你可以找到一些你可以在矮人堡垒维基上看到的位图(用户制作的图集)。

文本模式演示比赛有更多的资源在文本模式下做图形。

嗯..我想这个答案有点让人失望。 不过,我正在计划一部史诗般的基于文本的冒险游戏。 祝你好运彩色文字!


我很惊讶没有人提到Python termcolor模块。 用法很简单:

from termcolor import colored

print colored('hello', 'red'), colored('world', 'green')

但是,对于游戏编程和你想要做的“彩色块”,它可能不够复杂......


Python的所有跨平台着色的答案是Colorama。

一个Python 3.6的例子截图: 示例截图

链接地址: http://www.djcxy.com/p/9287.html

上一篇: Print in terminal with colors?

下一篇: How do I get the path of the current executed file in Python?