Python以颜色将特定单词打印到输出终端。

Python以颜色将特定单词打印到输出终端。,python,python-2.7,Python,Python 2.7,下面是我正在尝试的代码,若打印线通过,我需要在终端上打印绿色;若打印线失败,我需要打印红色。这是完美的工作使用下面的代码。但我希望只有通过和不通过应该分别打印绿色和红色。不完整的行。请帮忙 HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m'

下面是我正在尝试的代码,若打印线通过,我需要在终端上打印绿色;若打印线失败,我需要打印红色。这是完美的工作使用下面的代码。但我希望只有通过和不通过应该分别打印绿色和红色。不完整的行。请帮忙

HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
a = [["a", "b", "c", "pass"], ["x", "y", "z", "fail"]]
b = [x for x in a if x is not None]
col_width = max(len(word) for row in b for word in row) + 2  # padding
for row in b:
    if "pass" in row:
        print OKGREEN + ( "".join(word.ljust(col_width) for word in row)) + ENDC
    else:
        print FAIL + ( "".join(word.ljust(col_width) for word in row)) + ENDC

在打印一行中的最后一个字之前(在您的情况下为“通过”或“失败”),而不是在打印整行之前,更改终端颜色:

HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
a = [["a", "b", "c", "pass"], ["x", "y", "z", "fail"]]
b = [x for x in a if x is not None]
col_width = max(len(word) for row in b for word in row) + 2  # padding
for row in b:
    if "pass" in row:
        print "".join(word.ljust(col_width) for word in row[:-1]) + OKGREEN + row[-1] + ENDC
    else:
        print "".join(word.ljust(col_width) for word in row[:-1]) + FAIL + row[-1] + ENDC

你可能会喜欢。看起来更方便。它在做你写的。写入颜色属性代码,然后创建大字符串,然后重置。你需要用括号括起你想要的单词。是另一个库选项。tercolor在Windows上不起作用(Colorama有“”)。join(word.ljust(col_width)表示第[:-2]行中的word)+OKGREEN+第[-2]行+结束..最后一个不打印。我的意思是它只打印a,b和c