python在windows命令行下输出彩色文字的方法
本文实例讲述了python在windows命令行下输出彩色文字的方法。分享给大家供大家参考。具体分析如下:
默认情况下python在控制台输出的文字信息都是黑白的,如果能将文字做成彩色的输出,输出效果会更完美,也很酷,不是吗,下面是一段演示代码,这段代码封装了一个color类用来输出带颜色的文字,只要调用该类里面的相关方法就可以了,非常简单。
#!/usr/bin/envpython
#encoding:utf-8
importctypes
STD_INPUT_HANDLE=-10
STD_OUTPUT_HANDLE=-11
STD_ERROR_HANDLE=-12
FOREGROUND_BLACK=0x0
FOREGROUND_BLUE=0x01#textcolorcontainsblue.
FOREGROUND_GREEN=0x02#textcolorcontainsgreen.
FOREGROUND_RED=0x04#textcolorcontainsred.
FOREGROUND_INTENSITY=0x08#textcolorisintensified.
BACKGROUND_BLUE=0x10#backgroundcolorcontainsblue.
BACKGROUND_GREEN=0x20#backgroundcolorcontainsgreen.
BACKGROUND_RED=0x40#backgroundcolorcontainsred.
BACKGROUND_INTENSITY=0x80#backgroundcolorisintensified.
classColor:
'''Seehttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp
forinformationonWindowsAPIs.-www.nhooo.com'''
std_out_handle=ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
defset_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)
returnbool
defreset_color(self):
self.set_cmd_color(FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE)
defprint_red_text(self,print_text):
self.set_cmd_color(FOREGROUND_RED|FOREGROUND_INTENSITY)
printprint_text
self.reset_color()
defprint_green_text(self,print_text):
self.set_cmd_color(FOREGROUND_GREEN|FOREGROUND_INTENSITY)
printprint_text
self.reset_color()
defprint_blue_text(self,print_text):
self.set_cmd_color(FOREGROUND_BLUE|FOREGROUND_INTENSITY)
printprint_text
self.reset_color()
defprint_red_text_with_blue_bg(self,print_text):
self.set_cmd_color(FOREGROUND_RED|FOREGROUND_INTENSITY|BACKGROUND_BLUE|BACKGROUND_INTENSITY)
printprint_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')
希望本文所述对大家的Python程序设计有所帮助。