在python 2.7中突出显示一个单词

时间:2017-06-24 02:54:18

标签: python python-2.7

如何通过使用python 2.7更改其颜色\颜色来突出显示文本中的字/字母

尝试: 使用克林特。

>>> from clint.textui import puts, colored
>>> puts(colored.red('Text in Red'))

红色文字 但是我只想给' x'在'文字'例如。

3 个答案:

答案 0 :(得分:0)

import termcolor

string = 'Text in Red'

string = string.replace('x', termcolor.colored('x', 'red'))

print string

答案 1 :(得分:0)

以下内容可行。

>>> from clint.textui import puts, colored
>>> puts('Te'+colored.red('x')+'t in Red')

让我通过首先解释颜色在控制台中的显示方式来解释原因。

当你想告诉控制台改变颜色时,你会认为你必须做一些特殊的系统调用或者什么,但你要做的就是输出一些叫做ansi转义序列的特殊字符。克林特为你处理这件事。当您使用clint.ansi.red函数时,在x之前添加了red的转义字符,并且在x之后添加了转义字符以将所有内容重置为正常。

这意味着,'Te'+colored.red('x')+'t in Red''Te\x1b[31m\x1b[22mx\x1b[39m\x1b[22mt in Red'相同,您可以继续将其他颜色的文字添加到您的内容中。

此外,clint会处理此问题,但仅供参考,如果您想查看颜色转义序列的完整列表,可以找到它们here。还有其他ansi代码允许您执行更改光标位置等操作。您可以找到所有ansi代码here的列表。如果你在clint库之外搞乱ansi代码,请确保考虑到每个控制流,包括将文本还原为正常所需的意外异常。执行一个程序,遇到一些错误导致控制台变红,然后让程序退出,但是你仍然留下了一个红色控制台。

答案 2 :(得分:0)

这是一种我倾向于使用很多的非外部库方法

class bcolors:
    RED     = '\033[91m'
    GREEN   = '\033[92m'
    BLUE    = '\033[94m'
    CYAN    = '\033[96m'
    WHITE   = '\033[97m'
    YELLOW  = '\033[93m'
    MAGENTA = '\033[95m'
    GREY    = '\033[90m'
    BLACK   = '\033[90m'
    DEFAULT = '\033[99m'
    BOLD    = '\033[1m'
    UNDERLINE = '\033[4m'
    END     = '\033[0m'

print(bcolors.WHITE + foo + bcolors.END)
print(bcolors.GREEN + bar + bcolors.END)