如何在Windows命令提示符中使用Python设置颜色?

10 投票
2 回答
5439 浏览
提问于 2025-04-15 13:51

我正在尝试修复一个关于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"

撰写回答