Я ищу способ надежно проверить, является ли выходной терминал ( stdout, stderr ) ANSI (или любым) цветным.
Поскольку большинство современных терминалов, даже в Windows, поддерживают по крайней мере цвета ANSI, все ответы, которые я нашел, либо устарели, либо неверны.(Я уже знаю, как просто распечатать цветовые тестовые шаблоны и проверить возможность Unicode / UTF-8 .)
Я видел частичные попытки и варианты этого:
Следует отметить, что это довольно легко сделать для среды на * nix, поскольку почти всегда для переменной TERM
установлено значение xterm
-типа.Но надеялся также найти некоторую переменную среды Windows для этого.
Q: Как мне получить мой код python3, чтобы проверить, использует ли вывод терминал или консоль с поддержкой цвета?
Ответ должен быть перекрестным-платформа совместима, например, возможность проверить это в Windows.
ОБНОВЛЕНИЕ:
Очевидно, что это не простая проблема!Кажется, это зависит от многих факторов, таких как:
- Какая у вас версия ОС Windows
- Какая у вас версия PowersHell
- Что такое ваш "терминал / консоль"возможности?( poweshell, mintty, cmd все очень разные)
- Какие шрифты используются в этих "консолях"?
- Какие наборы символов вы используете?( ASCII, UTF-8/16 и т. Д.)