利用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 開(kāi)頭的字符組成,后跟一個(gè)或多個(gè)參數(shù)和一個(gè)字母,以指示需要執(zhí)行的操作。常見(jiàn)的指令字母包括 m、H、J、K、s 和 u,常見(jiàn)的參數(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ù),常見(jiàn)的參數(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-11
python for循環(huán)如何實(shí)現(xiàn)控制步長(zhǎng)
這篇文章主要介紹了python for循環(huán)如何實(shí)現(xiàn)控制步長(zhǎng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Python實(shí)現(xiàn)輕松提取Word中的圖片
Microsoft Word是廣泛用于文檔編輯和處理的工具,有時(shí)候,可能需要從Word文檔中提取所有的圖片,以進(jìn)行后續(xù)的處理或分析,本文主要介紹了如何使用Python實(shí)現(xiàn)這一操作,需要的可以參考下2024-01-01
Linux下安裝python3.6和第三方庫(kù)的教程詳解
這篇文章主要介紹了Linux下安裝python3.6和第三方庫(kù)的教程詳解,需要的朋友可以參考下2018-11-11
python 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

