python – 颜色的终端打印?

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


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

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    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

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

如果你打算让这个问题变得复杂(而且听起来像是你在编写游戏),你应该看看“curses”模块,它为你处理了很多复杂的部分。在Python的诅咒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的例子截图:

添加评论

友情链接:蝴蝶教程