Python使用Colorama庫(kù)美化終端輸出的操作示例
Python Colorama 庫(kù)詳解:終端輸出美化的神器
1. Colorama 是什么?
Colorama 是一個(gè) Python 庫(kù),用于在終端中實(shí)現(xiàn)跨平臺(tái)的彩色文本輸出。它主要提供以下功能:
- 為文本添加前景色、背景色。
- 控制文本樣式(如加粗、下劃線)。
- 跨平臺(tái)支持(Windows、Linux 和 macOS)。
它特別適用于 Windows 系統(tǒng),因?yàn)槟J(rèn)情況下,Windows 控制臺(tái)不支持 ANSI 轉(zhuǎn)義序列,而 Colorama 自動(dòng)處理這一兼容性問(wèn)題。
2. Colorama 的安裝
可以通過(guò) pip 安裝 Colorama:
pip install colorama
安裝完成后,就可以直接在 Python 項(xiàng)目中使用。
3. Colorama 的基本使用
3.1 初始化 Colorama
在使用 Colorama 時(shí),需要先進(jìn)行初始化:
from colorama import init # 初始化(在 Windows 系統(tǒng)下非常重要) init()
3.2 添加顏色
Colorama 提供了三種主要功能模塊:
- Fore:設(shè)置文本的前景色(字體顏色)。
- Back:設(shè)置文本的背景色。
- Style:設(shè)置文本樣式。
以下是一個(gè)簡(jiǎn)單的示例:
from colorama import Fore, Back, Style, init init() # 初始化 print(Fore.RED + '這是紅色的文字') print(Back.GREEN + '這是綠色背景的文字') print(Style.BRIGHT + '這是加粗的文字' + Style.RESET_ALL) # 恢復(fù)默認(rèn)樣式 print('這是默認(rèn)樣式的文字')
運(yùn)行效果:
- 第一行是紅色字體。
- 第二行是綠色背景。
- 第三行是加粗字體。
3.3 恢復(fù)默認(rèn)樣式
為了避免影響后續(xù)輸出,可以在每次設(shè)置后使用 Style.RESET_ALL
重置樣式:
print(Fore.BLUE + "藍(lán)色文字" + Style.RESET_ALL) print("這是普通的文字")
3.4 綜合示例
下面是一個(gè)綜合示例,用不同顏色輸出日志級(jí)別信息:
from colorama import Fore, Style, init init() def log(message, level="INFO"): if level == "INFO": print(Fore.GREEN + "[INFO] " + Style.RESET_ALL + message) elif level == "WARNING": print(Fore.YELLOW + "[WARNING] " + Style.RESET_ALL + message) elif level == "ERROR": print(Fore.RED + "[ERROR] " + Style.RESET_ALL + message) log("系統(tǒng)啟動(dòng)成功", "INFO") log("磁盤(pán)空間不足", "WARNING") log("無(wú)法連接到數(shù)據(jù)庫(kù)", "ERROR")
運(yùn)行效果:
[INFO]
顯示為綠色。[WARNING]
顯示為黃色。[ERROR]
顯示為紅色。
4. 進(jìn)階使用:結(jié)合其他庫(kù)
4.1 配合 argparse
在編寫(xiě)命令行工具時(shí),可以結(jié)合 Colorama 和 argparse
,實(shí)現(xiàn)帶顏色的幫助信息輸出:
import argparse from colorama import Fore, Style, init init() parser = argparse.ArgumentParser(description=Fore.CYAN + "這是一個(gè)帶顏色的命令行工具" + Style.RESET_ALL) parser.add_argument('--name', type=str, help=Fore.GREEN + "請(qǐng)輸入你的名字" + Style.RESET_ALL) args = parser.parse_args() print(Fore.MAGENTA + f"你好, {args.name}!" + Style.RESET_ALL)
4.2 配合 logging
可以將 Colorama 用于日志格式的美化:
import logging from colorama import Fore, init init() class ColorFormatter(logging.Formatter): COLORS = { "DEBUG": Fore.BLUE, "INFO": Fore.GREEN, "WARNING": Fore.YELLOW, "ERROR": Fore.RED, "CRITICAL": Fore.MAGENTA, } def format(self, record): color = self.COLORS.get(record.levelname, "") message = super().format(record) return color + message + Fore.RESET logger = logging.getLogger("color_logger") handler = logging.StreamHandler() formatter = ColorFormatter("%(levelname)s: %(message)s") handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.DEBUG) logger.info("系統(tǒng)運(yùn)行正常") logger.warning("磁盤(pán)空間即將耗盡") logger.error("無(wú)法訪問(wèn)數(shù)據(jù)庫(kù)")
5. Colorama 的應(yīng)用場(chǎng)景
- 開(kāi)發(fā)命令行工具:為輸出添加顏色,提升工具的可讀性和用戶體驗(yàn)。
- 調(diào)試和日志輸出:區(qū)分不同類型的日志信息,如 DEBUG、INFO、WARNING。
- 演示效果:在控制臺(tái)中快速實(shí)現(xiàn)美觀的輸出,增強(qiáng)視覺(jué)效果。
6. 總結(jié)
Colorama 是一個(gè)功能強(qiáng)大且易于使用的終端輸出美化工具,尤其適用于跨平臺(tái)場(chǎng)景。在開(kāi)發(fā)中合理利用 Colorama,可以讓你的工具更加專業(yè)和友好。
你是否也在使用 Colorama?或者有其他更好的終端美化方案?歡迎在評(píng)論區(qū)分享!
完整代碼示例:
from colorama import Fore, Back, Style, init init() print(Fore.CYAN + "歡迎使用 Colorama" + Style.RESET_ALL) print(Fore.YELLOW + "這是一個(gè)簡(jiǎn)單的示例") print(Back.RED + "帶紅色背景的文本" + Style.RESET_ALL) print(Style.DIM + "這是淡化的文字" + Style.RESET_ALL)
運(yùn)行效果:
- 輸出文本顏色豐富,樣式清晰。
以上就是Python使用Colorama庫(kù)美化終端輸出的操作示例的詳細(xì)內(nèi)容,更多關(guān)于Python Colorama美化終端輸出的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換 問(wèn)題
這篇文章主要介紹了Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09python2.7讀取文件夾下所有文件名稱及內(nèi)容的方法
python,本身來(lái)說(shuō)是一門高級(jí)編程語(yǔ)言,python它入門簡(jiǎn)單,有基礎(chǔ)的學(xué)起來(lái)很快就能有簡(jiǎn)單的應(yīng)用,但是在非常高的抽象計(jì)算中,高級(jí)的python程序設(shè)計(jì)也是非常難學(xué)的。接下來(lái)給大家介紹python2.7讀取文件夾下所有文件名稱及內(nèi)容的方法,一起看看吧2018-02-02python保留小數(shù)函數(shù)的幾種使用總結(jié)
本文主要介紹了python保留小數(shù)函數(shù)的幾種使用總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python+requests+unittest API接口測(cè)試實(shí)例(詳解)
下面小編就為大家?guī)?lái)一篇python+requests+unittest API接口測(cè)試實(shí)例(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06django數(shù)據(jù)模型on_delete, db_constraint的使用詳解
這篇文章主要介紹了django數(shù)據(jù)模型on_delete, db_constraint的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Python HTMLTestRunner測(cè)試報(bào)告view按鈕失效解決方案
這篇文章主要介紹了Python HTMLTestRunner測(cè)試報(bào)告view按鈕失效解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05