欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python如何實(shí)現(xiàn)輸出顏色字體到終端界面

 更新時(shí)間:2022年12月05日 15:46:00   作者:HOLL4ND  
在終端中,輸出的字體總是單一顏色的,黑底白字。但是在一些場(chǎng)景并不能很好的滿足輸出的需求。本文為大家介紹了Python如何實(shí)現(xiàn)輸出顏色字體到終端界面中,需要的可以參考一下

在終端中,輸出的字體總是單一顏色的,黑底白字。但是在一些場(chǎng)景并不能很好的滿足輸出的需求,比如在大量而快速輸出中,輸出一些提示性或者警告性的信息,普通的黑底白字輸出可能或起不到作用。

本文將介紹如何輸出顏色字體到終端界面中。

1. ANSI 轉(zhuǎn)義序列

其實(shí)終端不僅能夠顯示程序的輸出。它可以顯示移動(dòng)光標(biāo)、為文本著色、清除整個(gè)屏幕,并且不僅僅是靜態(tài)輸出。比如顏色字體或者閃爍的光標(biāo)或者是進(jìn)度條。

我們通過(guò)使用特殊的輸出字符串改變終端的輸出行為,最簡(jiǎn)單的例子便是換行這個(gè)例子:\n

2. 配色方案

有兩種配色方案廣泛應(yīng)用于終端中:

  • 16 色 (8 背景 + 8 前景)前景即是字體本身的顏色
  • 255 色

16 色

16色的配色方案包含兩個(gè)顏色設(shè)置,每個(gè)8色,一個(gè)是背景色一個(gè)是字體色(也即前景色),這個(gè)配色方案的語(yǔ)法格式如下:

首先舉一個(gè)例子 :

\033[1;32;40m

這里 \033[ 是轉(zhuǎn)義字符 1 代表高亮,32 代表前景色為綠色,背景色為黑色

輸出到終端則是這個(gè)效果:

轉(zhuǎn)義字符

轉(zhuǎn)義字符可以有三種形式

  • 十六進(jìn)制:\x16[
  • Unicode:\u001b[
  • 八進(jìn)制:\033[

樣式

這個(gè)樣式指的是字體的顯示樣式:

0(默認(rèn)值)、1(高亮)、22(非粗體)

4(下劃線)、24(非下劃線)、 5(閃爍)

"25(非閃爍)、7(反顯)、27(非反顯)

print('\033[0;32;40m這是一行測(cè)試字體\033[0m')
print('\033[1;32;40m這是一行測(cè)試字體\033[0m')
print('\033[22;32;40m這是一行測(cè)試字體\033[0m')
print('\033[4;32;40m這是一行測(cè)試字體\033[0m')
print('\033[24;32;40m這是一行測(cè)試字體\033[0m')
print('\033[5;32;40m這是一行測(cè)試字體\033[0m')
print('\033[25;32;40m這是一行測(cè)試字體\033[0m')
print('\033[7;32;40m這是一行測(cè)試字體\033[0m')
print('\033[27;32;40m這是一行測(cè)試字體\033[0m')

具體效果看下面的動(dòng)圖:

需要注意的是具體的效果可能收到使用的終端的限制,目前在CMD中輸出并不會(huì)被識(shí)別,但是在window terminal中是成功的輸出以上內(nèi)容。

顏色設(shè)置

前景色: 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍(lán)色)、35(洋 紅)、36(青色)、37(白色)

背景色: 40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍(lán)色)、45(洋 紅)、46(青色)、47(白色)

前景色,即字體顏色的展示:

print('\033[1;30;40m這是一行黑色測(cè)試字體\033[0m')
print('\033[1;31;40m這是一行紅色測(cè)試字體\033[0m')
print('\033[1;32;40m這是一行綠色測(cè)試字體\033[0m')
print('\033[1;33;40m這是一行黃色測(cè)試字體\033[0m')
print('\033[1;34;40m這是一行藍(lán)色測(cè)試字體\033[0m')
print('\033[1;35;40m這是一行洋紅測(cè)試字體\033[0m')
print('\033[1;36;40m這是一行青色測(cè)試字體\033[0m')
print('\033[1;37;40m這是一行白色測(cè)試字體\033[0m')

背景色:

print('\033[1;37;40m這是一行黑色測(cè)試背景\033[0m')
print('\033[1;37;41m這是一行紅色測(cè)試背景\033[0m')
print('\033[1;37;42m這是一行綠色測(cè)試背景\033[0m')
print('\033[1;37;43m這是一行黃色測(cè)試背景\033[0m')
print('\033[1;37;44m這是一行藍(lán)色測(cè)試背景\033[0m')
print('\033[1;37;45m這是一行洋紅測(cè)試背景\033[0m')
print('\033[1;37;46m這是一行青色測(cè)試背景\033[0m')
print('\033[1;37;47m這是一行白色測(cè)試背景\033[0m')

Colorama 一個(gè)顏色輸出的模塊

每次輸入輸出都需要如此配置是非常麻煩的事,Colorama 提供方便的字體顏色輸出的配置

from?colorama?import?init,?Fore,?Back,?Style

#?Initializes?Colorama
init(autoreset=True)

print(Style.BRIGHT?+?Back.YELLOW?+?Fore.RED?+?"from?colorama?import?init,?Fore,?Back,?Style

#?Initializes?Colorama
init(autoreset=True)

print(Style.BRIGHT?+?Back.YELLOW?+?Fore.RED?+?"Colorama?")")

簡(jiǎn)單的變色函數(shù)

background_color_dict={
????'BLACK':40,
????'RED':41,
????'GREEN':42,
????'YELLOW':43,
????'BLUE':44,
????'MAGENTA':45,
????'CYAN':46,
????'WHITE':47
}

text_color_dict={
????'BLACK':30,
????'RED':31,
????'GREEN':32,
????'YELLOW':33,
????'BLUE':34,
????'MAGENTA':35,
????'CYAN':36,
????'WHITE':37
}

style_dict={
????'normal':0,
????'bold':1,
????'light':2,
????'italicize':3,
????'underline':4,
????'blink':5
}

def?set_text_color(str_text,?style,?text_color,?background_color):
????str?=?str_text
????style_code?=?style_dict[style]
????text_color_code?=?text_color_dict[text_color]
????back_color_code?=?background_color_dict[background_color]
????print_text?=?f'\033[{style_code};{text_color_code};{back_color_code}m{str}\033[0m'
????return?print_text

256色

256色的輸出格式和16色的有點(diǎn)不一樣

轉(zhuǎn)義字符和上面的是一樣的:

  • 十六進(jìn)制:\x16[
  • Unicode:\u001b[
  • 八進(jìn)制:\033[

標(biāo)注顯示模式則是38或者48選擇一個(gè)表名后面顏色代碼是前景色還是背景色。

如果想要同時(shí)修改,則使用兩個(gè)這樣的語(yǔ)句即可:

print("\033[48;5;160m\033[38;5;231m背景前景修改ABCDE?\033[38;5;226m前景修改ABCDE\033[0;0m")

輸出一下所有的前景顏色

def?print_colors_256(color_code):
????num1?=?str(color_code)
????num2?=?str(color_code).ljust(3,?'?')
????if?color_code?%?16?==?0:
????????return(f"\033[38;5;{num1}m?{num2}?\033[0;0m\n")
????else:
????????return(f"\033[38;5;{num1}m?{num2}?\033[0;0m")

print("256?color?scheme:")
print('',end='?')
print('?'.join([print_colors_256(x)?for?x?in?range(256)]))

這個(gè)效果可能和你的終端輸出不一致,這可能是因?yàn)槲覀兊慕K端使用了不同的主題,對(duì)顏色有著不同的修改。

到此這篇關(guān)于詳解Python如何實(shí)現(xiàn)輸出顏色字體到終端界面的文章就介紹到這了,更多相關(guān)Python輸出顏色字體到終端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中dumps與dump及l(fā)oads與load的區(qū)別

    Python中dumps與dump及l(fā)oads與load的區(qū)別

    這篇文章主要介紹了Python中dumps與dump、loads與load的區(qū)別,json模塊提供了一種很簡(jiǎn)單的方式來(lái)編碼和解碼JSON數(shù)據(jù)。其中兩個(gè)主要的函數(shù)是json.dumps()和json.loads(),需要的朋友可以參考下
    2022-04-04
  • python 獲取指定文件夾下所有文件名稱并寫入列表的實(shí)例

    python 獲取指定文件夾下所有文件名稱并寫入列表的實(shí)例

    下面小編就為大家分享一篇python 獲取指定文件夾下所有文件名稱并寫入列表的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python?pyaudio音頻錄制的實(shí)現(xiàn)

    python?pyaudio音頻錄制的實(shí)現(xiàn)

    這篇文章主要介紹了python?pyaudio音頻錄制的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • PyCharm:method may be static問(wèn)題及解決

    PyCharm:method may be static問(wèn)題及解決

    這篇文章主要介紹了PyCharm:method may be static問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python中time庫(kù)使用詳解

    python中time庫(kù)使用詳解

    time庫(kù)是python中處理時(shí)間的標(biāo)準(zhǔn)庫(kù),下面這篇文章主要給大家介紹了關(guān)于python中time庫(kù)使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 用Python手把手教你實(shí)現(xiàn)2048小游戲

    用Python手把手教你實(shí)現(xiàn)2048小游戲

    感覺(jué)好久沒(méi)和大家一起寫小游戲玩了,今天恰巧有空.這次我們來(lái)用Python做個(gè)2048小游戲吧.廢話不多說(shuō),文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python文件夾批處理操作代碼實(shí)例

    Python文件夾批處理操作代碼實(shí)例

    這篇文章主要介紹了Python文件夾批處理操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 對(duì)Python進(jìn)行數(shù)據(jù)分析_關(guān)于Package的安裝問(wèn)題

    對(duì)Python進(jìn)行數(shù)據(jù)分析_關(guān)于Package的安裝問(wèn)題

    下面小編就為大家?guī)?lái)一篇對(duì)Python進(jìn)行數(shù)據(jù)分析_關(guān)于Package的安裝問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • python xlsxwriter庫(kù)生成圖表的應(yīng)用示例

    python xlsxwriter庫(kù)生成圖表的應(yīng)用示例

    這篇文章主要介紹了python xlsxwriter庫(kù)生成圖表的應(yīng)用示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 基于PyQt5制作一個(gè)gif動(dòng)態(tài)圖片生成器

    基于PyQt5制作一個(gè)gif動(dòng)態(tài)圖片生成器

    這篇文章主要介紹了基于PyQt5實(shí)現(xiàn)的gif動(dòng)態(tài)圖片生成器,這個(gè)小工具制作的目的是為了將多張圖片組合后生成一張動(dòng)態(tài)的GIF圖片。需要的可以參考一下
    2022-01-01

最新評(píng)論