利用Python來控制終端打印字體的顏色和格式
一、問題描述
使用python編程時,改變控制臺或終端中輸出字體的顏色和格式,會顯著提升代碼質(zhì)量,快速幫助我們定位問題和鎖定重要輸出。但是一般情況下,python控制臺輸出的字體默認(rèn)為白色。具體如下:
在控制臺打印很多相同的格式文字時,并不利于我們查找和定位想要的輸出。
二、ANSI轉(zhuǎn)義序列
下面簡單講一下ANSI轉(zhuǎn)義序列,這里不重復(fù)講述概念,想要了解ANSI轉(zhuǎn)義序列是什么意思,可自行查找。舉個簡單例子來說:
\033[31m
是一個ANSI轉(zhuǎn)義序列,它告訴終端將后續(xù)文本的顏色設(shè)置為紅色;\033[0m
是另外一個ANSI轉(zhuǎn)義序列,它告訴終端將后續(xù)文本的顏色重置為默認(rèn)顏色;
總之,ANSI 轉(zhuǎn)義序列是一種用于在控制臺中輸出格式化文本的標(biāo)準(zhǔn),它由一系列以 ESC
開頭的字符組成,后跟一個或多個參數(shù)和一個字母,以指示需要執(zhí)行的操作。常見的指令字母包括 m、H、J、K、s 和 u,常見的參數(shù)包括 0-8、30-37 和 40-47。
下面給出一些簡單的指令參數(shù):
指令字母 | 操作 |
---|---|
m | 設(shè)置文本屬性 |
H | 設(shè)置光標(biāo)屬性 |
J | 清除屏幕 |
K | 清除行 |
s | 保存光標(biāo)位置 |
u | 恢復(fù)光標(biāo)位置 |
在參數(shù)中,分號用來分隔不同的參數(shù),常見的參數(shù)包括:
參數(shù) | 含義 |
---|---|
0 | 關(guān)閉所有屬性 |
1 | 設(shè)置粗體 |
2 | 設(shè)置弱化(半亮) |
3 | 設(shè)置斜體 |
4 | 設(shè)置下劃線 |
5 | 設(shè)置閃爍(慎用) |
7 | 設(shè)置反顯 |
8 | 設(shè)置消隱 |
30-37 | 設(shè)置前景色(字體顏色) |
40-47 | 設(shè)置背景色 |
三、具體代碼和顯示效果(看懂這段代碼,以后可隨心控制字體的打印格式)
要在Python中打印特定的字體格式或顏色(控制臺,終端),可以通過上面的ANSI轉(zhuǎn)義序列來操作,下面給出設(shè)置前景色、設(shè)置背景色和設(shè)置顯示方法的幾種演示代碼和效果,具體代碼如下:
- 設(shè)置輸出的前景色代碼,也就是設(shè)置輸出的顯示字體代碼:
# 輸出前景色(字體顏色) print('-----------------------------------------------------') print('輸出前景色(字體顏色):') print("\033[30m This text is foreground black.\033[0m") print("\033[31m This text is foreground red.\033[0m") print("\033[32m This text is foreground green.\033[0m") print("\033[33m This text is foreground yellow.\033[0m") print("\033[34m This text is foreground blue.\033[0m") print("\033[35m This text is foreground magenta.\033[0m") print("\033[36m This text is foreground cyan.\033[0m") print("\033[37m This text is foreground white.\033[0m")
具體效果如下:
- 設(shè)置輸出的背景色代碼:
# 輸出背景色 print('-----------------------------------------------------') print('輸出背景色:') print("\033[40m This text is background black.\033[0m") print("\033[41m This text is background pink-red.\033[0m") print("\033[42m This text is background dark-green.\033[0m") print("\033[43m This text is background yellow-red.\033[0m") print("\033[44m This text is background light-blue.\033[0m") print("\033[45m This text is background pink.\033[0m") print("\033[46m This text is background light-green.\033[0m") print("\033[47m This text is background grey color.\033[0m")
具體效果如下:
- 設(shè)置輸出的顯示方式代碼,具體如下:
# 輸出顯示方式 print('-----------------------------------------------------') print(" This text is default.") # 默認(rèn)白色 print("\033[0m This text is default.\033[0m") # 默認(rèn)值 print("\033[1m This text is bold.\033[0m") # 加粗 print("\033[4m This text is underline.\033[0m") # 下劃線 print("\033[5m This text is flicker.\033[0m") # 閃爍 print("\033[7m This text is reverse display.\033[0m") # 反顯 # 前面加上2就是非XX print("\033[22m This text is non bold.\033[0m") # 非粗體 print("\033[24m This text is non underline.\033[0m") # 非下劃線 print("\033[25m This text is non flicker.\033[0m") # 非閃爍 print("\033[7m This text is non reverse display.\033[0m") # 非反顯
具體效果如下:
其他的組合方式可以自行探索,通過組合不同的ANSI命令,即可獲得不同的顯示效果。
到此這篇關(guān)于利用Python來控制終端打印字體的顏色和格式的文章就介紹到這了,更多相關(guān)Python終端字體顏色和格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)算法示例【基于反向傳播算法】
這篇文章主要介紹了Python實現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)算法,結(jié)合實例形式分析了Python基于反向傳播算法實現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)相關(guān)操作技巧,需要的朋友可以參考下2017-11-11python for循環(huán)如何實現(xiàn)控制步長
這篇文章主要介紹了python for循環(huán)如何實現(xiàn)控制步長,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05python json.dumps() json.dump()的區(qū)別詳解
這篇文章主要介紹了python json.dumps() json.dump()的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07