import os
#ported from
def print_nt(foreground, newline, *kw):
from ctypes import windll, structure, c_short, c_uint, byref
#+8 means highlight
cc_map =
closehandle = windll.kernel32.closehandle
getstdhandle = windll.kernel32.getstdhandle
getconsolescreenbufferinfo = windll.kernel32.getconsolescreenbufferinfo
setconsoletextattribute = windll.kernel32.setconsoletextattribute
std_output_handle = -11
class coord(structure):
_fields_ = [('x', c_short), ('y', c_short)]
class small_rect(structure):
_fields_ = [('left', c_short),
('top', c_short),
('right', c_short),
('bottom', c_short),
]class console_screen_buffer_info(structure):
_fields_ = [('dwsize', coord),
('dwcursorposition', coord),
('wattributes', c_uint),
('srwindow', small_rect),
('dwmaximumwindowsize', coord),
]if foreground in cc_map:
hconsole = getstdhandle(std_output_handle)
scrinfo = console_screen_buffer_info()
getconsolescreenbufferinfo(hconsole, byref(scrinfo))
oldcolor = scrinfo.wattributes
setconsoletextattribute(hconsole, cc_map[foreground])
for t in kw: print t,
if newline: print
if foreground in cc_map:
setconsoletextattribute(hconsole, oldcolor)
#code source:
def print_inx(foreground, newline, *kw):
cc_map =
if foreground in cc_map:
for t in kw:
print '\033[' + cc_map[foreground] + 'm\033[0m'.format(t),
else:
for t in kw: print t,
if newline: print
def print_colorful(foreground, newline, *kw):
try:
if foreground == 'darkyellow':
foreground = 'brown'
if os.name == 'nt':
print_nt(foreground, newline, *kw)
else:
print_inx(foreground, newline, *kw)
except:
for t in kw: print t,
if newline: print
if __name__ == '__main__':
#print_colorful('red', 'red')
for c in ['red', 'green', 'cyan', 'blue', 'yellow', 'magenta', 'white']:
print_colorful(c, true, 'test for ' + c)
print_colorful('dark' + c, true, 'test for dark' + c)
我們知道在命令列下,python輸出的字串顏色和一般字元相同,例如windows為黑背景白色字元。
若我們想強調某些字元,可以利用下面的**將要強調部分變為red色。這個**在linux下可以,在windows下好像不能用。原理未知。
def inred( s ):
return"%s[31;2m%s%s[0m"%(chr(27), s, chr(27))
print'this is a very '+inred('important')+' thing'
內容: 格式: echo "\033[字背景顏色;字型顏色m字串\033[0m"
例如:
echo "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的顏色
那些ascii code 是對顏色呼叫的始末.
\033[ ; m …… \033[0m
字背景顏色範圍:40----49
40:黑
41:深紅
42:綠
43:黃色
44:藍色
45:紫色
46:深綠
47:白色
字顏色:30-----------39
30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色
*********************************************==ansi控制碼的說明
\33[0m 關閉所有屬性
\33[1m 設定高亮度
\33[4m 下劃線
\33[5m 閃爍
\33[7m 反顯
\33[8m 消隱
\33[30m -- \33[37m 設定前景色
\33[40m -- \33[47m 設定背景色
\33[na 游標上移n行
\33[nb 游標下移n行
\33[nc 游標右移n行
\33[nd 游標左移n行
\33[y;xh設定游標位置
\33[2j 清屏
\33[k 清除從游標到行尾的內容
\33[s 儲存游標位置
\33[u 恢復游標位置
\33[?25l 隱藏游標
\33[?25h 顯示游標
python 輸出顏色與樣式
我們知道在命令列下,python輸出的字串顏色和一般字元相同,例如windows為黑背景白色字元。若我們想強調某些字元,可以利用下面的 將要強調部分變為red色。這個 在linux下可以,在windows下好像不能用。原理未知。def inred s return s 31 2m s s 0m ch...
python 輸出顏色與樣式的方法
上次遇到這個問題就想寫下來,其實當時我也不怎麼會,老師說這個東西不需要理解,只需要死記硬背,寫的多了就記住了,所以今天蒐集了幾篇文章,加上自己的理解,寫下了這篇python 輸出顏色的樣式與方法的文章,一方面想自己記錄下自己的理解,另一方面想用自己通俗的理解送給需要的盆友。在寫python 程式 的...
python輸出帶顏色字型
在python開發的過程中,經常會遇到需要列印各種資訊。海量的資訊堆砌在控制台中,就會導致資訊都混在一起,降低了重要資訊的可讀性。這時候,如果能給重要的資訊加上字型顏色,那麼就會更加方便使用者閱讀了。當然了,控制台的展示效果有限,並不能像前段一樣炫酷,只能做一些簡單的設定。不過站在可讀性的角度來看,...