您好,登錄后才能下訂單哦!
使用Python怎么在cmd中打印彩色文字?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
首先分別介紹GetStdHandle()和SetConsoleTextAttribute()這兩個API。
(1) GetStdHandle()的作用是獲取輸入、輸出/錯誤的屏幕緩沖區的句柄。函數聲明如下:
HANDLE GetStdHandle( DWORD nStdHandle );
其參數nStdHandle的值為下面幾種類型的一種:
STD_INPUT_HANDLE 標準輸入的句柄 STD_OUTPUT_HANDLE 標準輸出的句柄 STD_ERROR_HANDLE 標準錯誤的句柄
GetStdHandle()返回標準的輸入、輸出或錯誤的設備的句柄,也就是獲得輸入、輸出/錯誤的屏幕緩沖區的句柄。
(2)SetConsoleTextAttribute() 的作用是在控制臺中設置輸入或輸出文本的文本顏色和背景顏色。其函數聲明如下:
BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, // console 屏幕緩沖區的句柄 WORD wAttributes // 文本及背景的顏色 );
文本與背景顏色設置可以參考Windows上"color /?"命令的說明。顏色屬性由兩個十六進制數字指定 -- 第一個為背景,第二個則為前景。每個數字可以為以下任何值之一,如下
= 黑色 8 = 灰色 = 藍色 9 = 淡藍色 = 綠色 A = 淡綠色 = 淺綠色 B = 淡淺綠色 = 紅色 C = 淡紅色 = 紫色 D = 淡紫色 = 黃色 E = 淡黃色 = 白色 F = 亮白色
如果函數設置文本及背景顏色成功,則返回非0。如果設置失敗返回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')
輸出展示:
說明:如果需要增加不同前景色或者背景色的組合輸出,可以參考代碼和上述顏色編號增加。
使用實例
1、將上述prt_cmd_color.py文件放在與待執行腳本ping_ip.py同一目錄下。或者通過sys.path.append()將prt_cmd_color.py
文件所在的目錄添加到搜索路徑下。
2、ping_ip.py腳本中import prt_cmd_color
導入模塊或者執行from prt_cmd_color import printGreen, printRed
導入指定函數。
3、ping_ip.py代碼內容如下:
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、執行結果如下圖所示。命令執行成功,以綠色顯示提示信息,執行失敗以紅色顯示提示信息。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。