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

Nic*_*ton 10 python windows command-prompt waf

我正在尝试修补一个waf问题,Windows命令提示输出在它应该是的时候没有着色.我正在试图找出如何实际实现这个补丁,但我找不到足够的资源 - 有人能指出我正确的方向吗?

更新1

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

luc*_*luc 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"
Run Code Online (Sandbox Code Playgroud)

  • 其他人尝试此操作的快速注释 - 它在IDLE中不起作用,使用python.exe或将其作为cmd.exe中的脚本运行 (3认同)