如何使用Python在Windows命令提示符下使用颜色?

时间:2009-08-25 14:26:48

标签: python windows command-prompt waf

我正在尝试修补waf issue,其中Windows命令提示符输出未应该是彩色的。我正在试图弄清楚如何实际实现这个补丁,但我找不到足够的资源 - 有人能指出我正确的方向吗?

更新1

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

2 个答案:

答案 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就可以了。