Python 列印彩色文字

Rayven Esplanada 2023年1月30日
  1. 在 Python 中使用 ANSI 轉義碼列印彩色文字
  2. 在 Python 中使用 colorama 模組列印彩色文字
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}")

輸出:

Python 有色文字輸出

在輸出最後一行後,由於 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,因為它是一個社群建立的庫。我們可以使用 pipanaconda 來安裝這個依賴關係。

  • 對於 pippip3
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)

輸出:

用 colorma 輸出 Python 彩色文字

DIMBRIGHT 用在同一種顏色上時,會輸出不同深淺的顏色。RESET_ALL 將顏色重置為預設值,可以設定為其他顏色,也可以讓它回到預設值。

綜上所述,在 Python 中列印出彩色文字的唯一方法就是利用 ANSI 轉義碼。這是控制檯理解 Python 的 print() 語句指令的唯一方法。你可以通過在你的 print() 中包含實際的轉義碼來手動完成,或者使用 colorama 將 ANSI 程式碼包裝成更易讀的格式。

如果你想獲得更多的 ANSI 程式碼顏色的選擇,網際網路上有很多資源提供,本文是一個好的開始。你也可以用 ANSI 程式碼來格式化文字(粗體、下劃線、斜體),改變你的控制檯背景,以及更多。

Rayven Esplanada avatar Rayven Esplanada avatar

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

相關文章 - Python Print