Как использовать цвет в командной строке Windows с помощью Python?
Я пытаюсь исправить проблема waf, где вывод командной строки Windows не окрашен, когда он должен быть. Я пытаюсь понять, как на самом деле реализовать этот патч, но у меня возникли проблемы с поиском достаточных ресурсов - может ли кто-нибудь указать мне в правильном направлении?
обновление 1
пожалуйста, не предлагайте ничего, что требует Cygwin.
2 ответов
это возможно благодаря 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"
Если вы заинтересованы в использовании обычного cmd.exe консоли для интерактивного интерпретатора Python, см. этот рецепт. Если вы в порядке с использованием специальных окон, имитирующих консоль, например, потому, что вам также нужна более продвинутая функциональность проклятий, то предложение @TheLobster о wcurses просто отлично.