首頁 > 軟體

Python colorama 彩色列印實現程式碼

2022-04-12 13:00:59

一、前言

構建命令列程式很酷:命令列可以按照我們的設定完成相應的工作,相比 GUI 介面程式,無需花費大量時間設計 GUI 介面。但要使命令列程式更吸引人,僅使用普通的列印功能是無法實現的。

一個很好的方案是使用 colorama 庫。這使我們可以非常輕鬆地為終端上輸出的字串著色,並且改善程式的介面外觀。

閒話少說,接下來讓我們看看如何使用它吧!

終端的字元顏色是用跳脫序列控制的,是文字模式下的系統顯示功能,和具體的語言無關。跳脫序列是以 ESC 開頭,即用 33 來完成(ESC的 ASCII 碼用十進位制表示是27,用八進位製表示就是033)。

書寫格式:

  • 開頭部分:33[顯示方式;前景色;背景色m + 結尾部分:33[0m
  • 注意:開頭部分的三個引數:顯示方式,前景色,背景色是可選引數,可以只寫其中的某一個;另外由於表示三個引數不同含義的數值都是唯一的沒有重複的,所以三個引數的書寫先後順序沒有固定要求,系統都能識別;但是,建議按照預設的格式規範書寫。
  • 對於結尾部分:其實也可以省略,但是為了書寫規範,建議33[***開頭,33[0m結尾。

數值表示的引數含義:

  • 顯示方式: 0(預設值)、1(高亮)、22(非粗體)、3(斜體)、4(下劃線)、24(非下劃線)、 5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)
  • 前景色(字型的顏色): 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋 紅)、36(青色)、37(白色)
  • 背景色:40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋 紅)、46(青色)、47(白色)

二、print彩色列印

舉例來說,字串 33[31m 代表紅色列印,字串 33[0m 被用來將終端的顏色設定為標準的預設色(通常為黑色)。樣例程式碼如下:

begin_color = '33[1;31m'
end_color = '33[0m'
print(begin_color + "人生苦短,我用Python!" + end_color)
print("人生苦短,我用Python!")

你可以對應顯示方式前景色(字型顏色)、背景色來靈活設定。根據自己的需求,把常用的封裝起來,用的時候直接呼叫就更方便了。

class printColors:
    RED = "33[1;31m"       # 紅色
    RED_3 = "33[4;31m"     # 紅色  帶下劃線
    PURPLE = "33[1;35m"    # 紫色
    CYAN = "33[1;36m"      # 青藍色
    END = '33[0m'

print(":".join(["CSDN葉庭雲", "https://yetingyun.blog.csdn.net/"]))
print(printColors.CYAN + "人生苦短,我用Python!" + printColors.END)
print(printColors.RED + "人生苦短,我用Python!" + printColors.END)
print(printColors.RED_3 + "人生苦短,我用Python!" + printColors.END)
print(printColors.PURPLE + "人生苦短,我用Python!" + printColors.END)

 

 

三、使用 Colorama 庫

Python中還可以使用 Colorama 庫來改變終端輸出文字的顏色,亮度和背景。

Colorama Pypi

這個庫背後的實現原理也非常簡單,它使用 ANSA 跳脫字元序列。當終端讀取這些序列之一時,它並不會輸出。當終端被指示為下一個輸出時它採用之前設定的顏色進行相應的輸出。

首先是安裝,使用 pip 直接進行安裝,命令列如下:

pip install colorama -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

安裝完成後,接著我們可以開始實踐了。在程式碼開頭新增以下初始化程式碼是一種很好的程式設計寫法(這用於確保 Windows 命令列正確處理 ANSA字串序列。否則,它只會列印出字元序列):

如果您使用的是其他作業系統,此時 init() 函數將什麼事情也不做,但是建議大家仍應該將其顯式放入我們的程式中,以確保我們的程式可以在任何平臺上正常工作。

現在我們可以開始來使用這個庫了。主要分為三個子類:

  • Fore:用於改變輸出文字的顏色;
  • Style:用於改變輸出文字的亮度;
  • Back:用於改變輸出文字的背景(即突出顯示文字)。

接著我們可以從改變文字的顏色開始,Colorama允許我們使用 8 8 8 種不同的顏色:黑色(black)、紅色(red)、綠色(green)、黃色(yellow)、藍色(blue)、洋紅色(magenta)、青色(cyan)、白色(white)。它們在 Fore 類中作為變數實現。他們的名字就是顏色的名字,全部大寫。例如:

from colorama import Fore, init

init()
print('人生苦短,我用Python!')
print(":".join(["CSDN葉庭雲", "https://yetingyun.blog.csdn.net/"]))
print(Fore.RED + '人生苦短,我用Python!')
print(Fore.BLUE + '人生苦短,我用Python!')
print(Fore.GREEN + '人生苦短,我用Python!')
print(Fore.MAGENTA + '人生苦短,我用Python!')
print(Fore.RESET + '人生苦短,我用Python!')   # 迴歸初始

上述程式碼很容易實現,正如我們看到的,我們還使用了另一個變數RESET,這主要用於恢復文字的原始顏色。

接下來我們將介紹的類為Back, 它實現了與 Fore 類相同的九個關鍵字:BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、RESET。

此時在這種背景下,設定的顏色將用於更改輸出文字的背景(即突出顯示文字)。舉例如下:

from colorama import Fore, Back, init

init()
print('人生苦短,我用Python!')
print(":".join(["CSDN葉庭雲", "https://yetingyun.blog.csdn.net/"]))
print(Back.RED + '人生苦短,我用Python!')
print(Back.BLUE + '人生苦短,我用Python!')
print(Back.GREEN + '人生苦短,我用Python!')
print(Back.MAGENTA + '人生苦短,我用Python!')
print(Back.RESET + '人生苦短,我用Python!')   # 迴歸初始


最後,我們可以使用 Style 類來改變輸出文字的亮度。該子類含有以下三個主要的關鍵字:

  • BRIGHT:使得輸出文字變亮
  • DIM:使得輸出的文字變暗(儘管它看起來與普通文字相同)
  • NORMAL:是的輸出的文字變成正常的亮度

簡單舉例如下:

from colorama import Style, init

init()
print('人生苦短,我用Python!')
print(Style.BRIGHT + '人生苦短,我用Python!')
print(Style.DIM + '人生苦短,我用Python!')

參考了:

Python中終端彩色列印輸出

Python終端如何輸出彩色字型

Python終端列印帶顏色的print

在終端中輸出彩色文字

到此這篇關於Python colorama 彩色列印實現程式碼的文章就介紹到這了,更多相關Python colorama 彩色列印內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com