如何使用python进行颜色输出? [复制]

Posted

技术标签:

【中文标题】如何使用python进行颜色输出? [复制]【英文标题】:how to make colors output using python? [duplicate] 【发布时间】:2016-10-30 12:07:27 【问题描述】:

我是 python 新手(大约一周或更短时间),我使用的是 python 2.7。

我正在编写一个程序来检查 ip 验证和类,并且我想以彩色输出,所以它在终端上对用户来说更具可读性。

我已经试过了:

# to make the text purple for example.
print '\033[95m' + "This is a purple output"
# if i'm writing another simple print after the first one it will be purple too
print "Example" # now this statement purple too

但是当我使用这个例子时,第一个打印方法之后的输出也会变成紫色。

感谢所有尝试的人。

【问题讨论】:

你可以这样做: print '\033[95m' + "This is a Purple output" + '\033[0m' 哦,我没看到那个帖子。对不起 【参考方案1】:

通过打印转义码\033[0m,可以重置颜色:

>>> print '\033[95m' + "This is a purple output" + '\033[0m'
This is a purple output

或者,您可以使用colorama package:

>>> from colorama import Fore
>>> print Fore.LIGHTMAGENTA_EX + "This is a purple output" + Fore.RESET
This is a purple output

【讨论】:

谢谢你,但我需要一个更有效的方法。 @shemesh,你如何定义高效? 我认为这个 '\033[95m' 没有必要,我的意思是当你阅读代码时它看起来并不那么好。我可以使用所有颜色值的类吗? @shemesh,我添加了一个使用第三方包colorama 的替代解决方案。看看吧。 谢谢你看看我的解决方案,感谢你的帮助。【参考方案2】:

我认为这是我能想到的最好方法。

class FontColors:
    def __init__(self):
        self.PURP = '\033[95m'
        self.LIGHTBLUE = '\033[94m'
        self.ENDC = '\033[0m'
        self.UNDERLINE = '\033[4m'
        self.LIGHTYELL = '\033[92m'
        self.BYELL = '\033[93m'
        self.FRED = '\033[91m'
        self.BOLD = '\033[1m'

color = FontColors()

# you can try like this - **the color.ENDC meant to make the output normal again.**
print "0This is a Purple output1".format(color.PURP, color.ENDC)
# or like this
print color.BYELL + "This is a Yellow output" + color.ENDC

感谢 @falsetru 帮助我解决这个问题。

【讨论】:

您不需要自己定义它们。检查我更新的答案。 知道了,谢谢。我会投票给你,但我还不能。

以上是关于如何使用python进行颜色输出? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中使用 softmax 输出进行神经网络和机器学习来解释多项 Logit 模型? [复制]

如何在 Python 中更改打印颜色? [复制]

Python-如何使颜色条方向水平?

如何设置一个获取灰度图像并输出 ARGB 的图层,使其中一种灰度颜色透明?

C语言问题:如何使输出的一段东西是不同颜色的

Python:如何在绘图中更改多折线图上线条的颜色? [复制]