HOWTO · Python

在 Python 中列印粗體文字

了解如何在 Python 終端機中使用 ANSI 序列或文字樣式套件列印粗體文字。

本頁內容

在 Python 終端機中列印粗體文字,可以使用 ANSI 跳脫序列,或使用 termcolor、colorama、simple_colors、click 等樣式套件。這些方法用於設定終端機輸出的樣式;若要在文件或網頁中顯示粗體,請使用 Markdown 或 HTML。以下範例是針對終端機文字,實際顯示效果取決於終端機是否支援 ANSI。

若你正在規劃命令列工具的輸出格式,我們的 Python 教學 也收錄了其他文字美化與終端機處理的指南。

在 Python 中使用 ANSI 跳脫序列列印粗體文字

在支援 ANSI 的終端機中,ANSI 跳脫序列可變更文字格式,而且不需要額外安裝 Python 套件。序列 \033[1m 會開始套用粗體樣式,\033[0m 則會恢復正常樣式。可以用一個可重複使用的類別,將這些序列集中管理:

class BoldText:
    BOLD = "\033[1m"
    RESET = "\033[0m"


print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
Python Programming!

請在設定樣式的文字後重設格式,以免終端機將樣式延續到後續輸出。只有支援 ANSI 樣式的終端機才會解讀這些跳脫序列。

在 Python 中使用類別列印粗體文字

上方的 BoldText 類別提供 BOLD 和 RESET 常數,因此可以在其他 print 呼叫中重複使用相同格式。請在每段設定樣式的文字末尾放上重設序列。這個類別只會傳送 ANSI 控制序列,不會偵測輸出目的地是否能呈現這些序列。

在 Python 中使用 termcolor 模組列印粗體文字

termcolor 是用於設定終端機文字樣式的套件,而 colored() 是其中的格式設定函式。使用 python -m pip install termcolor 安裝後,呼叫 colored("Python", "green", attrs=["bold"]),再列印傳回的字串。這個工作流程所用的 Python 執行環境沒有安裝此套件,因此這裡以行內文字展示呼叫方式,並非可執行範例。

若要在提供的執行環境中嘗試相同的終端機效果,請使用以下獨立的 ANSI 替代方案。它不會呼叫 termcolor;上方的套件呼叫僅供說明,必須先在自己的環境中安裝套件才能執行。

class BoldText:
    BOLD = "\033[1m"
    RESET = "\033[0m"


print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
Python Programming!

在 Python 中使用 colorama 套件列印粗體文字

colorama 可協助應用程式在不同終端機中使用 ANSI 樣式,也能改善 Windows 上的 ANSI 處理方式。使用 python -m pip install colorama 安裝,從 colorama 匯入 Style 和 init 後呼叫 init(),接著列印 f"{Style.BRIGHT}Bold Text{Style.RESET_ALL}"。Style.BRIGHT 會套用強調樣式,Style.RESET_ALL 則會恢復預設樣式。設定的 Python 執行環境沒有安裝此套件,因此這裡以行內文字說明用法,並非可執行範例。初始化也不保證每種主控台或輸出目的地都會顯示粗體。

以下可在目前執行環境中使用的替代方案會直接傳送相同效果的 ANSI 樣式。它不會執行 colorama;若要測試套件的平台處理方式,請先安裝套件,再使用上方的呼叫方式。

class BoldText:
    BOLD = "\033[1m"
    RESET = "\033[0m"


print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
Python Programming!

在 Python 中使用 simple_colors 套件列印粗體文字

此套件以 simple-colors 這個名稱安裝,並以 simple_colors 匯入。使用 python -m pip install simple-colors 安裝後,從 simple_colors 使用 green("Python", "bold")。此工作流程使用的 Python 執行環境未包含該套件,因此這裡只展示呼叫方式,並未實際執行。樣式是否能顯示也取決於終端機支援。

以下是使用標準函式庫、可直接執行的替代方案,可呈現相同的粗體終端機文字。上方的 simple_colors 呼叫僅供說明,必須安裝 simple-colors 才能執行。

class BoldText:
    BOLD = "\033[1m"
    RESET = "\033[0m"


print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
Python Programming!

在 Python 中使用 click 函式庫列印粗體文字

若命令列應用程式已使用 click,請先以 python -m pip install click 安裝。click.echo(click.style("Bold Text", bold=True)) 會設定字串樣式並將其寫入終端機。設定的 Python 執行環境未安裝 click,因此這裡以行內文字展示用法,並非可執行範例。和其他函式庫方法一樣,樣式能否顯示取決於輸出環境。

以下獨立替代方案直接使用 ANSI,因此不需要 click 即可執行。上方的 click.style() 和 click.echo() 呼叫僅供說明;安裝 click 後即可執行。

class BoldText:
    BOLD = "\033[1m"
    RESET = "\033[0m"


print(f"{BoldText.BOLD}Python Programming!{BoldText.RESET}")
Python Programming!

結論

若要不安裝額外套件,請直接使用 ANSI 序列;若想重複使用常數,可以將序列放在小型類別中。termcolor、colorama、simple_colors 和 click 則提供較高階的輔助功能。不支援解讀 ANSI 的終端機可能會將樣式序列顯示為一般文字,請依目標環境選擇做法。