使用Python怎么在cmd中打印彩色文字?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。10余年品質(zhì),值得信賴!Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
首先分別介紹GetStdHandle()和SetConsoleTextAttribute()這兩個API。
(1) GetStdHandle()的作用是獲取輸入、輸出/錯誤的屏幕緩沖區(qū)的句柄。函數(shù)聲明如下:
HANDLE GetStdHandle( DWORD nStdHandle );
其參數(shù)nStdHandle的值為下面幾種類型的一種:
STD_INPUT_HANDLE 標(biāo)準(zhǔn)輸入的句柄 STD_OUTPUT_HANDLE 標(biāo)準(zhǔn)輸出的句柄 STD_ERROR_HANDLE 標(biāo)準(zhǔn)錯誤的句柄
GetStdHandle()返回標(biāo)準(zhǔn)的輸入、輸出或錯誤的設(shè)備的句柄,也就是獲得輸入、輸出/錯誤的屏幕緩沖區(qū)的句柄。
(2)SetConsoleTextAttribute() 的作用是在控制臺中設(shè)置輸入或輸出文本的文本顏色和背景顏色。其函數(shù)聲明如下:
BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, // console 屏幕緩沖區(qū)的句柄 WORD wAttributes // 文本及背景的顏色 );
文本與背景顏色設(shè)置可以參考Windows上"color /?"命令的說明。顏色屬性由兩個十六進(jìn)制數(shù)字指定 -- 第一個為背景,第二個則為前景。每個數(shù)字可以為以下任何值之一,如下
= 黑色 8 = 灰色 = 藍(lán)色 9 = 淡藍(lán)色 = 綠色 A = 淡綠色 = 淺綠色 B = 淡淺綠色 = 紅色 C = 淡紅色 = 紫色 D = 淡紫色 = 黃色 E = 淡黃色 = 白色 F = 亮白色
如果函數(shù)設(shè)置文本及背景顏色成功,則返回非0。如果設(shè)置失敗返回0。
prt_cmd_color.py參考代碼如下:
#-*- coding:utf-8 -*-# #filename: prt_cmd_color.py import ctypes,sys STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE = -11 STD_ERROR_HANDLE = -12 #字體顏色定義 text colors FOREGROUND_BLUE = 0x09 # blue. FOREGROUND_GREEN = 0x0a # green. FOREGROUND_RED = 0x0c # red. FOREGROUND_YELLOW = 0x0e # yellow. # 背景顏色定義 background colors BACKGROUND_YELLOW = 0xe0 # yellow. # get handle std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) def set_cmd_text_color(color, handle=std_out_handle): Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color) return Bool #reset white def resetColor(): set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE) #green def printGreen(mess): set_cmd_text_color(FOREGROUND_GREEN) sys.stdout.write(mess + '\n') resetColor() #red def printRed(mess): set_cmd_text_color(FOREGROUND_RED) sys.stdout.write(mess + '\n') resetColor() #yellow def printYellow(mess): set_cmd_text_color(FOREGROUND_YELLOW) sys.stdout.write(mess + '\n') resetColor() #white bkground and black text def printYellowRed(mess): set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED) sys.stdout.write(mess + '\n') resetColor() if __name__ == '__main__': printGreen('printGreen:Gree Color Text') printRed('printRed:Red Color Text') printYellow('printYellow:Yellow Color Text')
輸出展示:
說明:如果需要增加不同前景色或者背景色的組合輸出,可以參考代碼和上述顏色編號增加。
使用實(shí)例
1、將上述prt_cmd_color.py文件放在與待執(zhí)行腳本ping_ip.py同一目錄下?;蛘咄ㄟ^sys.path.append()將prt_cmd_color.py
文件所在的目錄添加到搜索路徑下。
2、ping_ip.py腳本中import prt_cmd_color
導(dǎo)入模塊或者執(zhí)行from prt_cmd_color import printGreen, printRed
導(dǎo)入指定函數(shù)。
3、ping_ip.py代碼內(nèi)容如下:
import os, sys sys.path.append('d:\temp') from prt_cmd_color import printGreen, printRed for ip in ['192.168.1.104', '192.168.1.105']: ret = os.system('ping -n 2 -w 3 %s > nul' % (ip,)) if ret == 0: printGreen("%s success" % (ip,)) else: printRed("%s fail" % (ip,))
4、執(zhí)行結(jié)果如下圖所示。命令執(zhí)行成功,以綠色顯示提示信息,執(zhí)行失敗以紅色顯示提示信息。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。