Python終端輸出彩色字符方法詳解
有時(shí)候需要在終端顯示彩色的字符,即根據(jù)需要顯示不同顏色的字符串,比如我們要在終端打印一行錯(cuò)誤提示信息,要把它弄成紅色的。其實(shí)這個(gè)在Python中很好實(shí)現(xiàn),使用轉(zhuǎn)義序列來(lái)實(shí)現(xiàn)不同顏色的顯示,轉(zhuǎn)義序列以ESC開頭,它的ASCII碼八進(jìn)制為 \033。顯示格式為:\033[顯示方式;前景色;背景色m
用這種原生的轉(zhuǎn)義序列輸出,在linux下完全支持,但是在windows下確存在兼容問(wèn)題,比如在win10下可以正常顯示顏色,在win7下確不支持。因此可以使用python標(biāo)準(zhǔn)庫(kù)提供的colorama模塊
輸出彩色字體,這個(gè)模塊是跨平臺(tái)的,內(nèi)部實(shí)現(xiàn)也是采用轉(zhuǎn)義序列來(lái)顯示顏色的,只不過(guò)對(duì)windows平臺(tái)做了特殊處理,因此完全兼容linux和windows各個(gè)版本。
以下封裝了一個(gè)Colored類,提供了兩個(gè)版本,第一個(gè)版本采用原生的轉(zhuǎn)義字符序列輸出各種顏。
第二個(gè)版本用python標(biāo)準(zhǔn)庫(kù)的colorama模塊兼容windows和linux。當(dāng)要在終端打印彩色字體時(shí)直接調(diào)用對(duì)應(yīng)的方法即可,很方便。
一.Colored版本
1:采用原生的轉(zhuǎn)義字符序列---對(duì)windows有的版本不支持(比如win7),linux完美支持
#coding:gbk
# ------------------------------------------------
# python終端顯示彩色字符類,可以調(diào)用不同的方法
# 選擇不同的顏色.使用方法看示例代碼就很容易明白.
# ------------------------------------------------
#
# 顯示格式: \033[顯示方式;前景色;背景色m
# ------------------------------------------------
# 顯示方式 說(shuō)明
# 0 終端默認(rèn)設(shè)置
# 1 高亮顯示
# 4 使用下劃線
# 5 閃爍
# 7 反白顯示
# 8 不可見
# 22 非粗體
# 24 非下劃線
# 25 非閃爍
#
# 前景色 背景色 顏色
# 30 40 黑色
# 31 41 紅色
# 32 42 綠色
# 33 43 黃色
# 34 44 藍(lán)色
# 35 45 紫紅色
# 36 46 青藍(lán)色
# 37 47 白色
# ------------------------------------------------
class Colored(object):
# 顯示格式: \033[顯示方式;前景色;背景色m
# 只寫一個(gè)字段表示前景色,背景色默認(rèn)
RED = '\033[31m' # 紅色
GREEN = '\033[32m' # 綠色
YELLOW = '\033[33m' # 黃色
BLUE = '\033[34m' # 藍(lán)色
FUCHSIA = '\033[35m' # 紫紅色
CYAN = '\033[36m' # 青藍(lán)色
WHITE = '\033[37m' # 白色
#: no color
RESET = '\033[0m' # 終端默認(rèn)顏色
def color_str(self, color, s):
return '{}{}{}'.format(
getattr(self, color),
s,
self.RESET
)
def red(self, s):
return self.color_str('RED', s)
def green(self, s):
return self.color_str('GREEN', s)
def yellow(self, s):
return self.color_str('YELLOW', s)
def blue(self, s):
return self.color_str('BLUE', s)
def fuchsia(self, s):
return self.color_str('FUCHSIA', s)
def cyan(self, s):
return self.color_str('CYAN', s)
def white(self, s):
return self.color_str('WHITE', s)
# ----------使用示例如下:-------------
color = Colored()
print color.red('I am red!')
print color.green('I am gree!')
print color.yellow('I am yellow!')
print color.blue('I am blue!')
print color.fuchsia('I am fuchsia!')
print color.cyan('I am cyan!')
print color.white('I am white')
顏色對(duì)比圖(根據(jù)需要自己設(shè)置對(duì)應(yīng)的值):

運(yùn)行效果:

二.Colored版本
2:采用python標(biāo)準(zhǔn)庫(kù)的colorama模塊--兼容linux和windows各個(gè)版本:
# -----------------colorama模塊的一些常量---------------------------
# Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
# Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
# Style: DIM, NORMAL, BRIGHT, RESET_ALL
#
from colorama import init, Fore, Back, Style
init(autoreset=True)
class Colored(object):
# 前景色:紅色 背景色:默認(rèn)
def red(self, s):
return Fore.RED + s + Fore.RESET
# 前景色:綠色 背景色:默認(rèn)
def green(self, s):
return Fore.GREEN + s + Fore.RESET
# 前景色:黃色 背景色:默認(rèn)
def yellow(self, s):
return Fore.YELLOW + s + Fore.RESET
# 前景色:藍(lán)色 背景色:默認(rèn)
def blue(self, s):
return Fore.BLUE + s + Fore.RESET
# 前景色:洋紅色 背景色:默認(rèn)
def magenta(self, s):
return Fore.MAGENTA + s + Fore.RESET
# 前景色:青色 背景色:默認(rèn)
def cyan(self, s):
return Fore.CYAN + s + Fore.RESET
# 前景色:白色 背景色:默認(rèn)
def white(self, s):
return Fore.WHITE + s + Fore.RESET
# 前景色:黑色 背景色:默認(rèn)
def black(self, s):
return Fore.BLACK
# 前景色:白色 背景色:綠色
def white_green(self, s):
return Fore.WHITE + Back.GREEN + s + Fore.RESET + Back.RESET
color = Colored()
print color.red('I am red!')
print color.green('I am gree!')
print color.yellow('I am yellow!')
print color.blue('I am blue!')
print color.magenta('I am magenta!')
print color.cyan('I am cyan!')
print color.white('I am white!')
print color.white_green('I am white green!')
運(yùn)行效果:

更多關(guān)于Python終端輸出彩色字符方法請(qǐng)查看下面的相關(guān)鏈接
- Pycharm中安裝wordcloud等庫(kù)失敗問(wèn)題及終端通過(guò)pip安裝的Python庫(kù)如何添加到Pycharm解釋器中(推薦)
- Python在終端通過(guò)pip安裝好包以后在Pycharm中依然無(wú)法使用的問(wèn)題(三種解決方案)
- python paramiko遠(yuǎn)程服務(wù)器終端操作過(guò)程解析
- 使用python模擬命令行終端的示例
- 在PyCharm的 Terminal(終端)切換Python版本的方法
- python隱藏終端執(zhí)行cmd命令的方法
- Python檢查ping終端的方法
- 淺談終端直接執(zhí)行py文件,不需要python命令
- 在Linux命令行終端中使用python的簡(jiǎn)單方法(推薦)
- python如何在終端里面顯示一張圖片
- 用Python編寫一個(gè)基于終端的實(shí)現(xiàn)翻譯的腳本
- 在終端啟動(dòng)Python時(shí)報(bào)錯(cuò)的解決方案
相關(guān)文章
Django中select_related和prefetch_related的用法與區(qū)別詳解
在實(shí)際的開發(fā)中,模型之間經(jīng)常存在復(fù)雜的關(guān)聯(lián)關(guān)系,下面這篇文章主要給大家介紹了關(guān)于Django中select_related和prefetch_related的用法與區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-11-11
Python中Jupyter notebook快捷鍵總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python中Jupyter notebook快捷鍵總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-04-04
python 對(duì)給定可迭代集合統(tǒng)計(jì)出現(xiàn)頻率,并排序的方法
今天小編就為大家分享一篇python 對(duì)給定可迭代集合統(tǒng)計(jì)出現(xiàn)頻率,并排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python讀取xlsx數(shù)據(jù)生成圖標(biāo)代碼實(shí)例
這篇文章主要介紹了Python讀取xlsx數(shù)據(jù)生成圖標(biāo)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法
下面小編就為大家分享一篇pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
解決django的template中如果無(wú)法引用MEDIA_URL問(wèn)題
這篇文章主要介紹了解決django的template中如果無(wú)法引用MEDIA_URL問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

