Python让你的终端输出变得五彩斑斓

前言

也许你希望在终端上输出一些带有颜色或者粗体、下划线等样式的信息,就像man中的那样;
又或者海量的信息堆砌在控制台导致各种信息都显示在一起,让人抓不住重点,或者使用python处理文档文件的时候,希望能看到一些中重点语句。
这时候,如果能给重要的信息加上差异的字体颜色,那么就会更加显眼,增加使用者可阅读性。
本文来简单介绍一下如何实现在终端变换颜色。

Linux下终端变换颜色

linux和windows平台修改终端显示颜色的方式是不一样的,当然其实也有通用的方法,这个在本文最后会讲。
先说一下Linux平台的方法,使用转义序列来实现不同颜色的显示。
转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。而终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
它的格式如下:

\033[显示方式;前景色;背景色m

其中显示方式,前景色,背景色参数如下:

前景色 背景色 颜色 显示方式 意义
30 40 黑色 0 终端默认设置
31 41 红色 1 粗体 高亮显示
32 42 绿色 22 非粗体 非高亮显示
33 43 黃色 4 使用下划线
34 44 蓝色 24 去下划线
35 45 紫红色 5 闪烁
36 46 青蓝色 25 去闪烁
37 47 白色 7 反白显示
27 非反显
8 不可见
28 可见

前景色后景色可以不设置,显示方式也可以不设置(默认为0)

print('\033[0;31;1m' )
print('*' * 50) 
print('*HOST:\t', 2019) 
print('*URI:\t', 'http://127.0.0.1') 
print('*TIME:\t', '20:58') 
print('*' * 50) 
print('\033[0m')

输出结果如下:
shell显示
测试文件如下:

#   格式:\033[显示方式;前景色;背景色m
#   说明:
#
#   前景色            背景色            颜色
#   ---------------------------------------
#     30                40              黑色
#     31                41              红色
#     32                42              绿色
#     33                43              黃色
#     34                44              蓝色
#     35                45              紫红色
#     36                46              青蓝色
#     37                47              白色
#
#   显示方式           意义
#   -------------------------
#      0           终端默认设置
#      1             高亮显示
#      4            使用下划线
#      5              闪烁
#      7             反白显示
#      8              不可见
#
#   例子:
#   \033[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->
#   \033[0m          <!--采用终端默认设置,即取消颜色设置-->]]]

STYLE = {
   
        'fore':
        {
      # 前景色
            'black'    : 30,   #  黑色
            'red'      : 31,   #  红色
            'green'    : 32,   #  绿色
            'yellow'   : 33,   #  黄色
            'blue'     : 34,   #  蓝色
            'purple'   : 35,   #  紫红色
            'cyan'     : 36,   #  青蓝色
            'white'    : 37,   #  白色
        },

        'back' :
        {
      # 背景
            'black'     : 40,  #  黑色
            'red'       : 41,  #  红色
            'green'     : 42,  #  绿色
            'yellow'    : 43,  #  黄色
            'blue'      : 44,  #  蓝色
            'purple'    : 45,  #  紫红色
            'cyan'      : 46,  #  青蓝色
            'white'     : 47,  #  白色
        },

        'mode' :
        {
      # 显示模式
            'mormal'    : 0,   #  终端默认设置
            'bold'      : 1,   #  高亮显示
            'underline' : 4,   #  使用下划线
            'blink'     : 5,   #  闪烁
            'invert'    : 7,   #  反白显示
            'hide'      : 8,   #  不可见
        },

        'default' :
        {
   
            'end' : 0,
        },
}

def UseStyle(string, mode = '', fore = '', back = ''):
    mode  = '%s' % STYLE[
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值