10

我正在尝试修补一个waf 问题,在该问题中,Windows 命令提示符输出在应有的情况下没有着色。我试图弄清楚如何实际实施此补丁,但我无法找到足够的资源 - 有人能指出我正确的方向吗?

更新 1

请不要提出任何需要 Cygwin 的建议。

4

2 回答 2

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"
于 2009-08-25T15:17:23.760 回答
3

如果你热衷于为 Python 交互式解释器使用普通的 cmd.exe 控制台,请参阅这个秘籍。如果您可以使用模拟控制台的特殊窗口,例如因为无论如何您还需要更高级的诅咒功能,那么@TheLobster 对 wcurses 的建议就可以了。

于 2009-08-25T15:16:30.220 回答