python在windows命令行下輸出彩色文字代碼

pycct 9年前發布 | 2K 次閱讀 Python

默認情況下python在控制臺輸出的文字信息都是黑白的,如果能將文字做成彩色的輸出,輸出效果會更完美,也很酷,不是嗎,下面是一段演示代碼,這段代碼封裝了一個color類用來輸出帶顏色的文字,只要調用該類里面的相關方法就可以了,非常簡單。

#!/usr/bin/env python

encoding: utf-8

import ctypes

STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE= -11 STD_ERROR_HANDLE = -12

FOREGROUND_BLACK = 0x0 FOREGROUND_BLUE = 0x01 # text color contains blue. FOREGROUND_GREEN= 0x02 # text color contains green. FOREGROUND_RED = 0x04 # text color contains red. FOREGROUND_INTENSITY = 0x08 # text color is intensified.

BACKGROUND_BLUE = 0x10 # background color contains blue. BACKGROUND_GREEN= 0x20 # background color contains green. BACKGROUND_RED = 0x40 # background color contains red. BACKGROUND_INTENSITY = 0x80 # background color is intensified.

class Color: ''' See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp for information on Windows APIs. - www.sharejs.com''' std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

def set_cmd_color(self, color, handle=std_out_handle):
    """(color) -> bit
    Example: set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)
    """
    bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
    return bool

def reset_color(self):
    self.set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

def print_red_text(self, print_text):
    self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY)
    print print_text
    self.reset_color()

def print_green_text(self, print_text):
    self.set_cmd_color(FOREGROUND_GREEN | FOREGROUND_INTENSITY)
    print print_text
    self.reset_color()

def print_blue_text(self, print_text):
    self.set_cmd_color(FOREGROUND_BLUE | FOREGROUND_INTENSITY)
    print print_text
    self.reset_color()

def print_red_text_with_blue_bg(self, print_text):
    self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY| BACKGROUND_BLUE | BACKGROUND_INTENSITY)
    print print_text
    self.reset_color()   

if name == "main": clr = Color() clr.print_red_text('red') clr.print_green_text('green') clr.print_blue_text('blue') clr.print_red_text_with_blue_bg('background')</pre>

 本文由用戶 pycct 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!