Этот вопрос уже имеет ответ здесь:
Я задавался вопросом, знает ли кто-либо, как выбрать цвет текста, который обнаруживается в оболочке. Я заметил пару использования 'ls' различных цветов при распечатывании информации на экран (на моем поле Linux), задавался вопросом, мог ли я использовать в своих интересах это в Python.
Используйте Curses или escape-последовательности ANSI. Перед тем, как вы начнете выдавать escape-последовательности, вы должны убедиться, что stdout - это tty. Вы можете сделать это с помощью sys.stdout.isatty ()
. Вот функция, взятая из моего проекта, которая выводит результат красным или зеленым, в зависимости от статуса, с использованием управляющих последовательностей ANSI:
def hilite(string, status, bold):
attr = []
if status:
# green
attr.append('32')
else:
# red
attr.append('31')
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
Все основные цветовые коды приведены на https://www.siafoo.net/snippet/88
curses
позволит вам правильно использовать цвета для типа используемого терминала.
посмотрите на http://www.pixelbeat.org/talks/python/ls.py