Python无法为终端输出ANSI颜色代码

时间:2016-11-23 01:38:50

标签: python python-2.7 terminal ansi-colors

我有一个非常简单的python +2.7文件,其中包含以下代码(在终端中运行时)为两个字符串打印输出ANSI颜色代码。

# coding=utf8

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'

print "\033[95mWorks fine\033[0m"
print '\033[95mWorks fine\033[0m'
print bcolors.OKBLUE, "Fails to work", bcolors.ENDC

为什么第三个print语句无法在终端中产生任何颜色?关于使用utf8文件,我应该知道些什么吗?

系统:ubuntu 16.04

2 个答案:

答案 0 :(得分:1)

单个 -quotes和 double -quotes在大多数其他语言中都有所不同。不是python。以下是显示脚本应该有效的屏幕截图(也许OP已经应用了一些调色板,例如 solarized ,这让人感到困惑 - 可以重新分配这些颜色的任何模仿xterm的终端:

double-quotes

single-quotes

这里是xterm的所谓颜色立方体(您可能已经看过):

xterm color-cube

和(某些终端仿真器迟到了),实现xterm控制序列的任何东西都可以重新编程,就像使用反色一样:

reversed color-cube

答案 1 :(得分:0)

这是一个有效的例子:

IndexOutOfRangeException