Python在命令行中使用print打印不同的顏色


顯示顏色格式:\033[顯示方式;字體色;背景色m......[\033[0m

書寫格式:
     開頭部分\033[顯示方式;前景色;背景色m + 結尾部分:\033[0m

     解釋:
  • 開頭部分的三個參數:顯示方式,前景色,背景色是可選參數,可以只寫其中的某一個;
  • 由於表示三個參數不同含義的數值都是唯一的沒有重復的,所以三個參數的書寫先后順序沒有固定要求,系統都能識別;
  • 建議按照默認的格式規范書寫。
  • 對於結尾部分,其實對后續輸出信息的顏色樣式定義,一般設置為系統默認,也可以省略,但是為了顯示和書寫規范,建議\033[***開頭,\033[0m結尾。
 
數值表示的參數含義:
顯示方式: 0(默認\)、1(高亮)、22(非粗體)、4(下划線)、24(非下划線)、 5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)
前景色:   30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋 紅)、36(青色)、37(白色)
背景色:   40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋 紅)、46(青色)、47(白色)
 
復制代碼
-------------------------------------------
字體色     |       背景色     |      顏色描述
-------------------------------------------
30        |        40       |       黑色
31        |        41       |       紅色
32        |        42       |       綠色
33        |        43       |       黃色
34        |        44       |       藍色
35        |        45       |       紫紅色
36        |        46       |       青藍色
37        |        47       |       白色
-------------------------------------------
-------------------------------
顯示方式     |      效果
-------------------------------
0           |     終端默認設置
1           |     高亮顯示
4           |     使用下划線
5           |     閃爍
7           |     反白顯示
8           |     不可見
-------------------------------
復制代碼
print('\033[1;36m床前明月光,')
print('疑是地上霜。')
print('舉頭望明月,')
print('低頭思故鄉。\033[0m')

 

 

出處:https://www.cnblogs.com/hanfe1/p/10664942.html

==================================================================================

 我們在使用python運維與開發的過程中,經常需要打印顯示各種信息。海量的信息堆砌在控制台中,就會導致各種信息都顯示在一起,降低了重要信息的可讀性。這時候,如果能給重要的信息加上差異的字體顏色,那么就會更加顯眼,增加使用者可閱讀性。 

以前看別人寫代碼總是出現"\033[1;31m......\033[0m"  類似出現,

我自己以為顏色輸出必須"\033[1;31m“開頭,” \033[0m" 結尾構成一組,其實不然。

實際上"\033[1;31m...................."  表示的意思是“....................“引號里的內容顯示打印一種顏色(紅色),

而后面的\033[0m表示,后續如果有需要顯示的內容,則顯示另外一種顏色(默認顏色樣式)。

 

例如我們先寫一個簡單的要求用戶輸入的例子來了解一下:

info = input("Please  Introduce yourself: ")
print('\033[1;33mWe asked him to introduce himself first.He said \" %s .\"\033[3;31m' %info)
print('這行是上一行結尾的顏色輸出效果 '

效果如圖:

第一行顯示的是默認顏色樣式

第二行是:\033[1;33m定義的顏色樣式

第三行是:\033[3;31m定義的顏色樣式,也就是第二行最后設置的

一般情況是在末尾設置成系統默認顏色樣式,使用:\033[0m

如果只需要一種顏色我們就可以簡單一點:  

復制代碼
#!/usr/bin/env python
#-*- coding:utf-8 -*-
print('\033[0m這是顯示方式0')
print('\033[1m這是顯示方式1')
print('\033[4m這是顯示方式4')
print('\033[5m這是顯示方式5')
print('\033[7m這是顯示方式7')
print('\033[8m這是顯示方式8')
print('\033[30m這是前景色0')
print('\033[31m這是前景色1')
print('\033[32m這是前景色2')
print('\033[33m這是前景色3')
print('\033[34m這是前景色4')
print('\033[35m這是前景色5')
print('\033[36m這是前景色6')
print('\033[37m這是前景色7')
print('\033[40m這是背景色0')
print('\033[41m這是背景色1')
print('\033[42m這是背景色2')
print('\033[43m這是背景色3')
print('\033[44m這是背景色4')
print('\033[45m這是背景色5')
print('\033[46m這是背景色6')
print('\033[47m這是背景色7')
復制代碼

 

 Pytharm效果如圖:

  書寫格式,和相關說明如下: 

復制代碼
說明:
前景色         背景色           顏色
---------------------------------------
30                40              黑色
31                41              紅色
32                42              綠色
33                43              黃色
34                44              藍色
35                45              洋紅
36                46              青色
37                47              白色
顯示方式               意義
----------------------------------
0                    終端默認設置
1                    高亮顯示
22           非高亮顯示
4 使用下划線
24           去下划線
5 閃爍
25           去閃爍
7 反白顯示
27           非反顯
8 不可見
28           可見 例: \
033[1;32;41m #---1-高亮顯示 32-前景色綠色 40-背景色紅色--- \033[0m #---采用終端默認設置,即缺省顏色---
復制代碼

*具體格式*:

設置顏色開始 :\033[顯示方式;前景色;背景色m 
注:';'前后的三個參數:顯示方式,前景色,背景色是可選參數,可以只寫其中的某一個或者某兩個;由於表示三個參數不同含義的數值都是唯一沒有重復的,所以三個參數的書寫先后順序沒有固定要求,系統都可識別;
建議按照默認的格式規范書寫

實現過程:

終端的字符顏色是用轉義序列控制的,是文本模式下的系統顯示功能,和具體的語言無關。轉義序列是以ESC開頭,即用\033來完成(ESC的ASCII碼用十進制表示是27,用八進制表示就是033)
 
數值表示的參數含義:
顯示方式:
 0( )、1( )、22( )、4( )、24( )、 5()、25( )、7( )、27( 、8( 、28(
前景色: 
30()、31 、32 、 33 、34 、35 、36 、37(
背景色: 
40 、41 、42 、 43 、44 、45 、46 、47(
 
 
實例
 
            
復制代碼
#!/usr/bin/env python
#-*- coding:utf-8 -*-
print('\033[1;31;40m')     #下一目標輸出背景為黑色,顏色紅色高亮顯示 print('*' * 50)
print('\033[7;31m錯誤次數超限,用戶已被永久鎖定,請聯系管理員!\033[1;31;40m')  #字體顏色紅色反白處理 print('*' * 50)
print('\033[0m')
復制代碼
 
            

 效果

 

 

 

 

出處:https://www.cnblogs.com/easypython/p/9084426.html

===========================================================================================

完整測試代碼:

#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf-8 -*-

import os

# 可以根據自己的需求,把常用的封裝起來,用的時候直接調用就可以了
class bcolors:
    cHEADER = '\033[95m'
    cOKBLUE = '\033[94m'
    cOKGREEN = '\033[92m'
    cWARNING = '\033[93m'
    cFAIL = '\033[91m'
    cBOLD = '\033[1m'
    cUNDERLINE = '\033[4m'
    cEND = '\033[0m'


def test1():
    print('\033[0m這是顯示方式0')
    print('\033[1m這是顯示方式1')
    print('\033[4m這是顯示方式4')
    print('\033[5m這是顯示方式5')
    print('\033[7m這是顯示方式7')
    print('\033[8m這是顯示方式8')
    print('\033[30m這是前景色0')
    print('\033[31m這是前景色1')
    print('\033[32m這是前景色2')
    print('\033[33m這是前景色3')
    print('\033[34m這是前景色4')
    print('\033[35m這是前景色5')
    print('\033[36m這是前景色6')
    print('\033[37m這是前景色7')
    print('\033[40m這是背景色0')
    print('\033[41m這是背景色1')
    print('\033[42m這是背景色2')
    print('\033[43m這是背景色3')
    print('\033[44m這是背景色4')
    print('\033[45m這是背景色5')
    print('\033[46m這是背景色6')
    print('\033[47m這是背景色7\033[0m')
    print('\033[2;36;43m這是綜合顏色\033[0m\n\n')
        
        
def test2():
    print('\033[3;36m床前明月光,')
    print('疑是地上霜。')
    print('舉頭望明月,')
    print('低頭思故鄉。\033[0m\n\n')



if __name__ == '__main__':
    os.system('clear')
    os.system('clear')
    print("\n__name__ is "+__name__+"\n")
    test1()
    test2()
    
    #info = input("Please  Introduce yourself: ")
    info="hahaha"
    print("----------")
    print('\033[1;33mWe asked him to introduce himself first.He said : \033[1;35m\" %s .\"\033[3;31m' %info)
    print('這行是上一行結尾的顏色輸出效果 \n\n')

    print(bcolors.cHEADER + "警告的顏色字體?" +bcolors.cEND)
    print(bcolors.cOKBLUE + "警告的顏色字體?" +bcolors.cEND)
    print(bcolors.cOKGREEN + "警告的顏色字體?\n" +bcolors.cEND)

    print('This is a \033[1;35m test \033[0m!')
    print('This is a \033[1;32;41m test \033[0m!')
    print('\033[1;33;44m  This is a test ! \033[0m\n')
    
View Code

 

補充:

今天遇到一個奇怪的問題,在Windows下編寫好了的.py文件,copy到Linux中,直接執行,發現中文無法顯示

最后檢查發現,是Windows和Linux系統之間的編碼格式及換行等不統一,默認創建的txt文件不通用!~

比如在Windows下換行符號是\r\n,而Linux下的是\n。需要設置文件格式為:utf-8無BOM ,

我這里是一的是UltraEdit另存為的,你也可以使用其他文本編輯工具另存為試試看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM