Python 列印彩色文字
本教程告訴你如何在 Python 中列印時生成彩色文字。
使用輸入來操作命令列控制檯的唯一方法是使用 ANSI 轉義碼。這些程式碼可以操縱控制檯功能,如文字或背景顏色、游標設定、字型和控制檯中的其他可修改元素。
在 Python 中使用 ANSI 轉義碼列印彩色文字
首先,讓我們宣告一個 Python 類,它給我們提供了一些代表顏色的 ANSI 碼。
class bcolors:
OK = '\033[92m' #GREEN
WARNING = '\033[93m' #YELLOW
FAIL = '\033[91m' #RED
RESET = '\033[0m' #RESET COLOR
其中有 3 個變數是實際的 ANSI 程式碼的顏色,而變數 RESET
是用來將顏色設定回預設值的。
函式 print()
將字串引數輸出到命令列控制檯。
如果你想讓 print()
的輸出是有顏色的,你就必須在字串中插入 ANSI 程式碼,可以操縱命令列控制檯。
使用類 bcolors
,我們將列印 3 行不同顏色的字串。
print(bcolors.OK + "File Saved Successfully!" + bcolors.RESET)
print(bcolors.WARNING + "Warning: Are you sure you want to continue?" + bcolors.RESET)
print(bcolors.FAIL + "Unable to delete record." + bcolors.RESET)
我們在字串前加上你希望它反映的顏色,並在下一次使用 print()
或下一次使用終端前用 bcolors.RESET
將顏色重置為預設值。
如果你使用 Python 3,你也可以像這樣格式化你的 print()
語句。
print(f"{bcolors.OK}File Saved Successfully!{bcolors.RESET}")
print(f"{bcolors.WARNING}Warning: Are you sure you want to continue?{bcolors.RESET}")
print(f"{bcolors.FAIL}Unable to delete record.{bcolors.RESET}")
輸出:
在輸出最後一行後,由於 bcolors.RESET
的作用,終端會被重置回預設顏色。如果你沒有把它放在行末,終端中的文字將被染成你在 print()
中設定的最後一種顏色。在這種情況下,它將是紅色的。
在 Python 中使用 colorama
模組列印彩色文字
ANSI 的問題是它在 Windows 作業系統中可能無法正常工作,所以你需要變通的方法來使它在 Windows 控制檯中工作。
colorama
是一個使用 ANSI 轉義碼的 Python 模組。這個模組也使 ANSI 與 Windows 相容成為可能。文件中解釋了他們是如何使 ANSI 程式碼與 Windows 相容成為可能的。
這裡有一個可用的 colorama
前景色的列表。
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET
它們也有樣式,包括一個 RESET_ALL
,可以重置所有當前的 ANSI 修改,而 Fore.RESET
只重置最新的 ANSI。
DIM, NORMAL, BRIGHT, RESET_ALL
首先,我們需要安裝 colorama
,因為它是一個社群建立的庫。我們可以使用 pip
或 anaconda
來安裝這個依賴關係。
- 對於
pip
或pip3
pip install colorama
pip3 install colorama //if you're using python3
- 對於
anaconda
conda install -c anaconda colorama
我們將嘗試一些顏色,並輸出幾行不同的顏色和風格。我們使用 colorama.init()
來使這些設定在 Windows 下工作。
import colorama
from colorama import Fore
from colorama import Style
colorama.init()
print(Fore.BLUE + Style.BRIGHT + "This is the color of the sky" + Style.RESET_ALL)
print(Fore.GREEN + "This is the color of grass" + Style.RESET_ALL)
print(Fore.BLUE + Style.DIM + "This is a dimmer version of the sky" + Style.RESET_ALL)
print(Fore.YELLOW + "This is the color of the sun" + Style.RESET_ALL)
輸出:
DIM
和 BRIGHT
用在同一種顏色上時,會輸出不同深淺的顏色。RESET_ALL
將顏色重置為預設值,可以設定為其他顏色,也可以讓它回到預設值。
綜上所述,在 Python 中列印出彩色文字的唯一方法就是利用 ANSI 轉義碼。這是控制檯理解 Python 的 print()
語句指令的唯一方法。你可以通過在你的 print()
中包含實際的轉義碼來手動完成,或者使用 colorama
將 ANSI 程式碼包裝成更易讀的格式。
如果你想獲得更多的 ANSI 程式碼顏色的選擇,網際網路上有很多資源提供,本文是一個好的開始。你也可以用 ANSI 程式碼來格式化文字(粗體、下劃線、斜體),改變你的控制檯背景,以及更多。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn