给出#RRGGBB十六进制值的彩色Python输出

时间:2017-08-20 13:41:04

标签: python python-3.x output

我用#RRGGBB十六进制格式(#D3D3D3为浅灰色)的用户使用了颜色,我想用它为一些输出着色。我想我写print("some text", color="#0000FF")并获得蓝色输出。是否可以(理想情况下没有第三方软件)?

1 个答案:

答案 0 :(得分:2)

您可以在真彩色终端上使用以下转义序列:

  • ESC[ … 38;2;<r>;<g>;<b> … m选择RGB前景色
  • ESC[ … 48;2;<r>;<g>;<b> … m选择RGB背景颜色

因此你可以编写一个函数:

RESET = '\033[0m'
def get_color_escape(r, g, b, background=False):
    return '\033[{};2;{};{};{}m'.format(48 if background else 38, r, g, b)

并使用它:

print(get_color_escape(255, 128, 0) 
      + get_color_escape(80, 30, 60, True)
      + 'Fancy colors!' 
      + RESET)

您可以使用例如以及背景和前景色来获得加倍的水平或垂直分辨率。