Как использовать цвет в командной строке Windows, используя Python? - PullRequest
9 голосов
/ 25 августа 2009

Я пытаюсь исправить проблему waf , когда вывод командной строки Windows не окрашен, как предполагалось. Я пытаюсь понять, как на самом деле реализовать этот патч, но у меня возникают проблемы с поиском достаточных ресурсов - кто-то может указать мне правильное направление?

Обновление 1

Пожалуйста, не предлагайте ничего, что требует Cygwin.

Ответы [ 2 ]

20 голосов
/ 25 августа 2009

Это возможно благодаря 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"
3 голосов
/ 25 августа 2009

Если вы хотите использовать обычные консоли cmd.exe для интерактивного интерпретатора Python, см. этот рецепт . Если вы согласны с использованием специальных окон, имитирующих консоль, например, потому что вам все равно нужны более продвинутые функции curses, тогда предложение @ TheLobster о wcurses просто отлично.

...