如何以彩色打印到控制台? [复制]

Posted

技术标签:

【中文标题】如何以彩色打印到控制台? [复制]【英文标题】:How to print to console in color? [duplicate] 【发布时间】:2015-01-31 15:19:10 【问题描述】:

如何使用 python print 进行彩色打印。例如

print('This should be red')
print('This should be green')

现在一切都是黑色背景上的白色文本。如果有帮助,我使用 ubuntu。

【问题讨论】:

***.com/questions/11672876/… 【参考方案1】:

这样定义颜色:

W  = '\033[0m'  # white (normal)
R  = '\033[31m' # red
G  = '\033[32m' # green
O  = '\033[33m' # orange
B  = '\033[34m' # blue
P  = '\033[35m' # purple

print(R+"hello how are you"+W)

演示:

在此处查看所有颜色代码:Color Codes

【讨论】:

在 Windows 上,您可能还需要 colorama 包(请参阅此重复的问题)。【参考方案2】:

使用彩色模块。

import colored
color = colored.fg(196) #orange
print(color + "This text is orange")

https://pypi.org/project/colored/

【讨论】:

【参考方案3】:

下面是我觉得有用的一个方便的功能。它将以您使用标准 RGB 元组指定的所需前景和背景颜色打印您提供的文本,因此您不必记住 ANSI 代码。要查找您可能想要使用的 RGB 值,您可以使用https://www.w3schools.com/colors/colors_picker.asp 的颜色选择器。

def print_in_color(txt_msg,fore_tupple,back_tupple,):
    #prints the text_msg in the foreground color specified by fore_tupple with the background specified by back_tupple 
    #text_msg is the text, fore_tupple is foregroud color tupple (r,g,b), back_tupple is background tupple (r,g,b)
    rf,gf,bf=fore_tupple
    rb,gb,bb=back_tupple
    msg='0' + txt_msg
    mat='\33[38;2;' + str(rf) +';' + str(gf) + ';' + str(bf) + ';48;2;' + str(rb) + ';' +str(gb) + ';' + str(bb) +'m' 
    print(msg .format(mat))
    print('\33[0m') # returns default print color to back to black

# example of use using a message with variables
fore_color='cyan'
back_color='dark green'
msg='foreground color is 0 and the background color is 1'.format(fore_color, back_color)
print_in_color(msg, (0,255,255),(0,127,127))

【讨论】:

应该是 "rf,gf,bf=fore_tupple" 而不是 "rf,bf,gf=fore_tupple"【参考方案4】:

使用 colorconsole 这样的模块更容易:

pip install colorconsole

然后例如

from colorconsole import terminal

screen = terminal.get_terminal(conEmu=False)

screen.cprint(4, 0, "This is red\n")
screen.cprint(10, 0, "This is light green\n")
screen.cprint(0, 11, "This is black on light cyan\n")

screen.reset_colors()

如果可用,它还支持 256/24 位颜色。

【讨论】:

【参考方案5】:

在这里使用这个函数:它有颜色:红、蓝、绿

colors = 'red':'\033[31m', 'blue':'\033[34m', 'green':'\033[32m'

def colorprint(string, text_color = 'default', bold = False, underline = False):
    if underline == True:
            string = '\033[4m' + string
    if bold == True:
            string = '\033[1m' + string
    if text_color == 'default' or text_color in colors:
            for color in colors:
                    if text_color == color:
                            string = colors[color] + string
    else:
            raise ValueError ("Colors not in:", colors.keys())

    print(string + '\033[0m')

【讨论】:

以上是关于如何以彩色打印到控制台? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以用 NSLog 进行彩色打印?

idea 配置控制台日志为彩色

IDEA+Log4j2 设置控制台打印彩色日志

程序在 python 中运行时如何打印到控制台? [复制]

如何将编辑器中的彩色代码复制word中保持原来的颜色?

为啥它在控制台进程中以退出代码 0 结束而不是打印 'sen' 变量这样说? [复制]