Python如何在終端彩色打印輸出
1.引言
創(chuàng)建命令行程序很棒:命令行可以按照我們的設(shè)定完成相應(yīng)的工作,相比GUI界面程序,無需花費(fèi)數(shù)小時(shí)嘗試使 GUI 正常工作。但有時(shí)最好有一個(gè)更吸引人的程序,而僅使用普通的打印功能是無法直接實(shí)現(xiàn)的。
一個(gè)很好的折衷方案是使用colorama庫。這使我們可以非常輕松地為終端上輸出的字符串著色,并且改善程序的界面外觀。
閑話少說,接下來讓我們看看如何使用它吧!
2.工作原理
這個(gè)庫背后的實(shí)現(xiàn)原理非常簡單,它通常使用 ANSA轉(zhuǎn)義字符序列。當(dāng)終端讀取這些序列之一時(shí),它并不會輸出。當(dāng)終端被指示為下一個(gè)輸出時(shí)它采用之前設(shè)定的顏色進(jìn)行相應(yīng)的輸出。
舉例來說,字符串\033[92m代表顏色綠色,字符串\033[0m被用來將終端的顏色設(shè)置為標(biāo)準(zhǔn)的默認(rèn)色(通常為黑色)。樣例代碼如下:
GREEN = '\033[92m'
END_COLOR = '\033[0m'
print(GREEN + "Hello World" + END_COLOR)
print("Hello word 2022!")
上述代碼輸出如下:

3.使用Colorama庫
現(xiàn)在我們明白了上述庫的工作原理,接下來我們來使用它。首先是安裝,還是使用pip直接進(jìn)行安裝,命令行如下:
pip install colorama
安裝完成后,接著我們可以開始編碼了。在腳本開頭添加以下初始化代碼是一種很好的編程寫法(在windows系統(tǒng)中比如顯示調(diào)用init函數(shù)):
from colorama import init init()
這用于確保 Windows 命令行正確處理 ANSA字符串序列。否則,它只會打印出字符序列。
如果您使用的是其他操作系統(tǒng),此時(shí)init()函數(shù)將什么事情也不做,但是建議大家仍應(yīng)該將其顯式放入我們的程序中,以確保我們的程序可以在任何平臺上正常工作。
現(xiàn)在我們可以開始來使用這個(gè)庫了。主要分為三個(gè)子類:
Fore ,用于改變輸出文本的顏色;Style,用于改變輸出文本的亮度;Back,用于改變輸出文本的背景(即突出顯示文本)。
4.改變輸出文本顏色
接著我們可以從改變文本的顏色開始,Colorama 允許我們使用八種不同的顏色:黑色(black)、紅色(red)、綠色(green)、黃色(yellow)、藍(lán)色(blue)、洋紅色(magenta)、青色(cyan)、白色(white)。它們在 Fore 類中作為變量實(shí)現(xiàn)。他們的名字就是顏色的名字,全部大寫。例如:
from colorama import Fore, init
init()
print('Now is not colored')
print(Fore.RED + 'some red text')
print(Fore.GREEN + 'some green text')
print(Fore.MAGENTA + 'some magenta text')
print(Fore.RESET + 'Back to normal')
輸出如下:

上述代碼很容易實(shí)現(xiàn),正如我們看到的,我們還使用了另一個(gè)變量RESET,這主要用于恢復(fù)文本的原始顏色。
5.改變輸出文本背景
接下來我們將介紹的類為Back, 它實(shí)現(xiàn)了與Fore 類相同的九個(gè)關(guān)鍵字:BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、RESET。
此時(shí)在這種背景下,設(shè)置的顏色將用于更改輸出文本的背景(即突出顯示文本)。舉例如下:
from colorama import Back, init
init()
print('Now is not highlighted')
print(Back.RED + 'some red background')
print(Back.GREEN + 'some green background')
print(Back.MAGENTA + 'some magenta background')
print(Back.RESET + 'Back to normal')
輸出如下:

6.改變輸出文本亮度
最后,我們可以使用 Style 類來改變輸出文本的亮度。該子類含有以下三個(gè)主要的關(guān)鍵字:
BRIGHT 使得輸出文本變亮DIM使得輸出的文本變暗(盡管它看起來與普通文本相同)NORMAL是的輸出的文本變成正常的亮度
舉例如下:
from colorama import Style, init
init()
print('Normal text')
print(Style.BRIGHT + 'Bright text')
print(Style.NORMAL + 'Normal text')
樣例輸出如下:

此外,該類還實(shí)現(xiàn)了 RESET_ALL 關(guān)鍵字,用于將所有內(nèi)容(亮度、顏色、背景)重置為正常值。舉例如下:
from colorama import Fore, Back, Style, init init() print(Style.BRIGHT + 'Now the text is bright') print(Fore.RED + 'Now the text is bright and red') print(Back.GREEN + 'Now the text is bright, red and with green background') print(Style.RESET_ALL + 'Now everything is back to normal')
輸出如下:

7. 總結(jié)
本文重點(diǎn)介紹了在Python中使用Colorama類來改變終端輸出文字的顏色,亮度和背景,并針對每類情形都進(jìn)行了舉例闡明。
到此這篇關(guān)于Python如何在終端彩色打印輸出的文章就介紹到這了,更多相關(guān)Python彩色打印輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python可視化篇之流式數(shù)據(jù)監(jiān)控的實(shí)現(xiàn)
這篇文章主要介紹了python可視化篇之流式數(shù)據(jù)監(jiān)控的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python 子類調(diào)用父類的構(gòu)造函數(shù)實(shí)例
這篇文章主要介紹了python 子類調(diào)用父類的構(gòu)造函數(shù)實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python MySQLdb 執(zhí)行sql語句時(shí)的參數(shù)傳遞方式
這篇文章主要介紹了Python MySQLdb 執(zhí)行sql語句時(shí)的參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
python之語句mode = 'test' if y&nb
這篇文章主要介紹了python之語句mode = 'test' if y is None else 'train'問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python?reflect單例模式反射各個(gè)函數(shù)
這篇文章主要介紹了Python?reflect單例模式反射各個(gè)函數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下2022-06-06
Pytorch用Tensorboard來觀察數(shù)據(jù)
這篇文章主要介紹了Pytorch用Tensorboard來觀察數(shù)據(jù),上一篇文章我們講解了關(guān)于Pytorch?Dataset的數(shù)據(jù)處理,這篇我們就來講解觀察數(shù)據(jù),下面具體相關(guān)資料,需要的朋友可以參考一下,希望對你有所幫助2021-12-12
Python爬蟲 scrapy框架爬取某招聘網(wǎng)存入mongodb解析
這篇文章主要介紹了Python爬蟲 scrapy框架爬取某招聘網(wǎng)存入mongodb解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
使用Pandas和Matplotlib進(jìn)行數(shù)據(jù)清洗與可視化的實(shí)現(xiàn)步驟
在數(shù)據(jù)科學(xué)領(lǐng)域,數(shù)據(jù)清洗和可視化是構(gòu)建數(shù)據(jù)驅(qū)動解決方案的重要步驟,本文將詳細(xì)介紹如何使用Pandas進(jìn)行數(shù)據(jù)清洗,并結(jié)合Matplotlib進(jìn)行可視化,文章通過實(shí)際代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-08-08

