如何在Windows命令提示符中使用Python设置颜色?
我正在尝试修复一个关于waf的问题,这个问题是Windows命令提示符的输出本该有颜色,但却没有。我想弄明白怎么实际去实现这个修复,但我找不到足够的资料——有人能给我指个方向吗?
更新 1
请不要建议任何需要Cygwin的东西。
2 个回答
3
如果你想在普通的cmd.exe控制台里使用Python的交互式解释器,可以看看这个方法。如果你愿意使用一些特别的窗口来模拟控制台,比如因为你还需要更高级的curses功能,那么@TheLobster推荐的wcurses也很不错。
21
这要归功于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"