Linux下Python實現設定終端顯示顏色、粗體、底線等效果,linuxpython

來源:互聯網
上載者:User

Linux下Python實現設定終端顯示顏色、粗體、底線等效果,linuxpython

也許你希望在終端上輸出一些帶有顏色或者粗體、底線等樣式的資訊,就像man中的那樣,那麼這篇文章將會起到些許作用。

事件起因

在Python開發項目過程中,為了方便調試代碼,經常會向stdout中輸出一些日誌,預設的這些日誌就直接顯示在了終端中。

但是很雜亂的資訊顯示在一起,往往沒有重點,一個一個找我們需要的資訊往往特別複雜.

linux終端顏色設定資訊

在Linux終端中,使用逸出序列來進行如上所述的顯示,逸出序列以ESC開頭,即ASCII碼下的\033,其格式為:

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

顯示方式、前景色彩、背景色至少一個存在即可。
格式:\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          <!--採用終端預設設定,即取消顏色設定-->
解決
#/usr/bin/python#-*- coding: utf-8 -*-#   格式:\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['mode'][mode] if STYLE['mode'].has_key(mode) else ''    fore  = '%s' % STYLE['fore'][fore] if STYLE['fore'].has_key(fore) else ''    back  = '%s' % STYLE['back'][back] if STYLE['back'].has_key(back) else ''    style = ';'.join([s for s in [mode, fore, back] if s])    style = '\033[%sm' % style if style else ''    end   = '\033[%sm' % STYLE['default']['end'] if style else ''    return '%s%s%s' % (style, string, end)def TestColor( ):    print UseStyle('正常顯示')    print ''    print "測試顯示模式"    print UseStyle('高亮',   mode = 'bold'),    print UseStyle('底線', mode = 'underline'),    print UseStyle('閃爍',   mode = 'blink'),    print UseStyle('反白',   mode = 'invert'),    print UseStyle('不可見', mode = 'hide')    print ''    print "測試前景色彩"    print UseStyle('黑色',   fore = 'black'),    print UseStyle('紅色',   fore = 'red'),    print UseStyle('綠色',   fore = 'green'),    print UseStyle('黃色',   fore = 'yellow'),    print UseStyle('藍色',   fore = 'blue'),    print UseStyle('紫紅色', fore = 'purple'),    print UseStyle('青藍色', fore = 'cyan'),    print UseStyle('白色',   fore = 'white')    print ''    print "測試背景色"    print UseStyle('黑色',   back = 'black'),    print UseStyle('紅色',   back = 'red'),    print UseStyle('綠色',   back = 'green'),    print UseStyle('黃色',   back = 'yellow'),    print UseStyle('藍色',   back = 'blue'),    print UseStyle('紫紅色', back = 'purple'),    print UseStyle('青藍色', back = 'cyan'),    print UseStyle('白色',   back = 'white')    print ''if __name__ == '__main__':    TestColor( )

附上用於測試的C程式
/**********************************************************    > File Name: test.c    > Author: GatieMe    > Mail: gatieme@163.com    > Created Time: 2015年04月26日 星期日 11時03分48秒 *********************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>/** * *    格式:\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          <!--採用終端預設設定,即取消顏色設定--> **/int main(void){    int left, right;    while(printf("\033[31m"),  /*  輸入資料紅色顯示  */          scanf("%d%d", &left, &right) != EOF)    {        printf("\033[1;32m%d\033[0m\n", left + right);  /* 輸出資訊綠色高亮顯示  */    }    return  EXIT_SUCCESS;}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.