Python如何在終端彩色打印輸出
1.引言
創(chuàng)建命令行程序很棒:命令行可以按照我們的設(shè)定完成相應(yīng)的工作,相比GUI界面程序,無(wú)需花費(fèi)數(shù)小時(shí)嘗試使 GUI 正常工作。但有時(shí)最好有一個(gè)更吸引人的程序,而僅使用普通的打印功能是無(wú)法直接實(shí)現(xiàn)的。
一個(gè)很好的折衷方案是使用colorama庫(kù)。這使我們可以非常輕松地為終端上輸出的字符串著色,并且改善程序的界面外觀。
閑話少說(shuō),接下來(lái)讓我們看看如何使用它吧!
2.工作原理
這個(gè)庫(kù)背后的實(shí)現(xiàn)原理非常簡(jiǎn)單,它通常使用 ANSA轉(zhuǎn)義字符序列。當(dāng)終端讀取這些序列之一時(shí),它并不會(huì)輸出。當(dāng)終端被指示為下一個(gè)輸出時(shí)它采用之前設(shè)定的顏色進(jìn)行相應(yīng)的輸出。
舉例來(lái)說(shuō),字符串\033[92m
代表顏色綠色,字符串\033[0m
被用來(lái)將終端的顏色設(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庫(kù)
現(xiàn)在我們明白了上述庫(kù)的工作原理,接下來(lái)我們來(lái)使用它。首先是安裝,還是使用pip直接進(jìn)行安裝,命令行如下:
pip install colorama
安裝完成后,接著我們可以開(kāi)始編碼了。在腳本開(kāi)頭添加以下初始化代碼是一種很好的編程寫法(在windows系統(tǒng)中比如顯示調(diào)用init函數(shù)):
from colorama import init init()
這用于確保 Windows 命令行正確處理 ANSA字符串序列。否則,它只會(huì)打印出字符序列。
如果您使用的是其他操作系統(tǒng),此時(shí)init()函數(shù)將什么事情也不做,但是建議大家仍應(yīng)該將其顯式放入我們的程序中,以確保我們的程序可以在任何平臺(tái)上正常工作。
現(xiàn)在我們可以開(kāi)始來(lái)使用這個(gè)庫(kù)了。主要分為三個(gè)子類:
Fore ,用于改變輸出文本的顏色;Style,用于改變輸出文本的亮度;Back,用于改變輸出文本的背景(即突出顯示文本)。
4.改變輸出文本顏色
接著我們可以從改變文本的顏色開(kāi)始,Colorama 允許我們使用八種不同的顏色:黑色(black)、紅色(red)、綠色(green)、黃色(yellow)、藍(lán)色(blue)、洋紅色(magenta)、青色(cyan)、白色(white)。它們?cè)?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.改變輸出文本背景
接下來(lái)我們將介紹的類為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
類來(lái)改變輸出文本的亮度。該子類含有以下三個(gè)主要的關(guān)鍵字:
BRIGHT
使得輸出文本變亮DIM
使得輸出的文本變暗(盡管它看起來(lái)與普通文本相同)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
類來(lái)改變終端輸出文字的顏色,亮度和背景,并針對(duì)每類情形都進(jìn)行了舉例闡明。
到此這篇關(guān)于Python如何在終端彩色打印輸出的文章就介紹到這了,更多相關(guān)Python彩色打印輸出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python自動(dòng)化辦公之Excel拆分與自動(dòng)發(fā)郵件
這篇文章主要何大家分享一個(gè)真實(shí)的自動(dòng)化辦公案例,即向用戶發(fā)送帶有Excel附件的電子郵件,同時(shí)必須按用戶從主Excel文件中拆分?jǐn)?shù)據(jù)以創(chuàng)建他們自己的特定文件,然后將該文件通過(guò)電子郵件發(fā)送給正確的用戶,感興趣的可以了解一下2022-03-03opencv實(shí)現(xiàn)簡(jiǎn)單人臉識(shí)別
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)簡(jiǎn)單人臉識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08通過(guò)Python實(shí)現(xiàn)自動(dòng)填寫調(diào)查問(wèn)卷
這篇文章主要介紹了通過(guò)Python實(shí)現(xiàn)自動(dòng)填寫調(diào)查問(wèn)卷的相關(guān)資料,需要的朋友可以參考下2017-09-09詳解Python的迭代器、生成器以及相關(guān)的itertools包
這篇文章主要介紹了詳解Python的迭代器、生成器以及相關(guān)的itertools包,Iterators、Generators是Python的高級(jí)特性,亦是Python學(xué)習(xí)當(dāng)中必會(huì)的基本知識(shí),需要的朋友可以參考下2015-04-04Python打印詳細(xì)報(bào)錯(cuò)日志logging問(wèn)題
這篇文章主要介紹了Python打印詳細(xì)報(bào)錯(cuò)日志logging問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09