我正在尝试修补waf issue,其中Windows命令提示符输出未应该是彩色的。我正在试图弄清楚如何实际实现这个补丁,但我找不到足够的资源 - 有人能指出我正确的方向吗?
请不要提出任何需要Cygwin的建议。
答案 0 :(得分:20)
这要归功于ctypes和SetConsoleTextAttribute
这是一个例子
from ctypes import *
STD_OUTPUT_HANDLE_ID = c_ulong(0xfffffff5)
windll.Kernel32.GetStdHandle.restype = c_ulong
std_output_hdl = windll.Kernel32.GetStdHandle(STD_OUTPUT_HANDLE_ID)
for color in xrange(16):
windll.Kernel32.SetConsoleTextAttribute(std_output_hdl, color)
print "hello"
答案 1 :(得分:3)
如果您热衷于为Python交互式解释器使用普通的cmd.exe控制台,请参阅this recipe。如果您可以使用模拟控制台的特殊窗口,例如因为您还需要更高级的curses功能,那么@ TheLobster建议使用wcurses就可以了。