利用Python來(lái)控制終端打印字體的顏色和格式
一、問(wèn)題描述
使用python編程時(shí),改變控制臺(tái)或終端中輸出字體的顏色和格式,會(huì)顯著提升代碼質(zhì)量,快速幫助我們定位問(wèn)題和鎖定重要輸出。但是一般情況下,python控制臺(tái)輸出的字體默認(rèn)為白色。具體如下:
在控制臺(tái)打印很多相同的格式文字時(shí),并不利于我們查找和定位想要的輸出。
二、ANSI轉(zhuǎn)義序列
下面簡(jiǎn)單講一下ANSI轉(zhuǎn)義序列,這里不重復(fù)講述概念,想要了解ANSI轉(zhuǎn)義序列是什么意思,可自行查找。舉個(gè)簡(jiǎn)單例子來(lái)說(shuō):
\033[31m
是一個(gè)ANSI轉(zhuǎn)義序列,它告訴終端將后續(xù)文本的顏色設(shè)置為紅色;\033[0m
是另外一個(gè)ANSI轉(zhuǎn)義序列,它告訴終端將后續(xù)文本的顏色重置為默認(rèn)顏色;
總之,ANSI 轉(zhuǎn)義序列是一種用于在控制臺(tái)中輸出格式化文本的標(biāo)準(zhǔn),它由一系列以 ESC
開頭的字符組成,后跟一個(gè)或多個(gè)參數(shù)和一個(gè)字母,以指示需要執(zhí)行的操作。常見的指令字母包括 m、H、J、K、s 和 u,常見的參數(shù)包括 0-8、30-37 和 40-47。
下面給出一些簡(jiǎn)單的指令參數(shù):
指令字母 | 操作 |
---|---|
m | 設(shè)置文本屬性 |
H | 設(shè)置光標(biāo)屬性 |
J | 清除屏幕 |
K | 清除行 |
s | 保存光標(biāo)位置 |
u | 恢復(fù)光標(biāo)位置 |
在參數(shù)中,分號(hào)用來(lái)分隔不同的參數(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中打印特定的字體格式或顏色(控制臺(tái),終端),可以通過(guò)上面的ANSI轉(zhuǎn)義序列來(lái)操作,下面給出設(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") # 非反顯
具體效果如下:
其他的組合方式可以自行探索,通過(guò)組合不同的ANSI命令,即可獲得不同的顯示效果。
到此這篇關(guān)于利用Python來(lái)控制終端打印字體的顏色和格式的文章就介紹到這了,更多相關(guān)Python終端字體顏色和格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)算法示例【基于反向傳播算法】
這篇文章主要介紹了Python實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)算法,結(jié)合實(shí)例形式分析了Python基于反向傳播算法實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)相關(guān)操作技巧,需要的朋友可以參考下2017-11-11python for循環(huán)如何實(shí)現(xiàn)控制步長(zhǎng)
這篇文章主要介紹了python for循環(huán)如何實(shí)現(xiàn)控制步長(zhǎng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Python實(shí)現(xiàn)輕松提取Word中的圖片
Microsoft Word是廣泛用于文檔編輯和處理的工具,有時(shí)候,可能需要從Word文檔中提取所有的圖片,以進(jìn)行后續(xù)的處理或分析,本文主要介紹了如何使用Python實(shí)現(xiàn)這一操作,需要的可以參考下2024-01-01Linux下安裝python3.6和第三方庫(kù)的教程詳解
這篇文章主要介紹了Linux下安裝python3.6和第三方庫(kù)的教程詳解,需要的朋友可以參考下2018-11-11python json.dumps() json.dump()的區(qū)別詳解
這篇文章主要介紹了python json.dumps() json.dump()的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07