Как использовать цвет в командной строке Windows с помощью Python?

StackOverflow https://stackoverflow.com/questions/1328643

Вопрос

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

Обновление 1

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

Это было полезно?

Решение

Это возможно благодаря 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 вполне подойдет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top