Как менять цвет текста в питоне
Перейти к содержимому

Как менять цвет текста в питоне

  • автор:

Как менять цвет текста в питоне

Ряд виджетов в Tkinter поддерживают установку цвета для различных аспектов. Например, у виджета Label можно установить параметры foreground и background , которые отвечают за цвет текста и фона соответственно. У некоторых виджетов настройки цвета спрятаны в параметре style.

Цвет можно установить разными способами:

    Именнованные цвета, например, «red», который соответствует красному цвету. В зависимости от платформы набор доступных именнованных цветов может отличаться. Все доступные именнованные цвета можно посмотреть в документации. Например:

ttk.Label(text="Hello World", foreground="red")
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") label = ttk.Label(text="Hello World", padding=8, foreground="#01579B", background="#B3E5FC") label.pack(anchor=CENTER, expand=1) root.mainloop()

Установка цвета в Tkinter и Python

Если нам даны отдельные коды RGB-составляющих, то их можно сконвертировать в шестнадцатеричный код цвета:

from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") def get_rgb(rgb): return "#%02x%02x%02x" % rgb label = ttk.Label(text="Hello World", padding=8, foreground=get_rgb((0, 77, 64)), background=get_rgb((128, 203, 196))) label.pack(anchor=CENTER, expand=1) root.mainloop()

Здесь функция get_rgb в качестве параметра получает кортеж из трех составляющих цвет RGB и с помощью форматирования строки переводит значения кортежа в шестнадцатеричный код

Цветной вывод текста в Python: Colorama

Библиотека Colorama позволяет управляющим символам ANSI (используются для создания цветного текста в терминале и позиционирования курсора) работать под MS Windows.

Если вы считаете Colorama полезной, не забудьте поблагодарить ее авторов и сделать пожертвование. Спасибо!

Установка

 
pip install colorama # или conda install -c anaconda colorama

Описание

Управляющие символы ANSI давно используются для создания цветного текста и позиционирования курсора в терминале на Unix и Mac. Colorama делает возможным их использование на платформе Windows, оборачивая stdout, удаляя найденные ANSI-последовательности (которые будут выглядеть как тарабарщина при выводе) и преобразуя их в соответствующие вызовы win32 для изменения состояния командной строки. На других платформах Colorama ничего не меняет.

В результате мы получаем простой кроссплатформенный API для отображения цветного терминального текста из Python, а также следующий приятный побочный эффект: существующие приложения или библиотеки, использующие ANSI-последовательности для создания цветного вывода на Linux или Mac, теперь могут работать и на Windows, просто вызвав colorama.init().

Альтернативный подход заключается в установке ansi.sys на машины с Windows, что обеспечивает одинаковое поведение для всех приложений, работающих с командной строкой. Colorama предназначена для ситуаций, когда это не так просто (например, может быть, у вашего приложения нет программы установки).

Демо-скрипты в репозитории исходного кода библиотеки выводят небольшой цветной текст, используя последовательности ANSI. Сравните их работу в Gnome-terminal и в Windows Command-Prompt, где отображение осуществляется с помощью Colorama:

ANSI-последовательности на Ubuntu под gnome-terminalANSI-последовательности на Windows, используя Colorama

Эти скриншоты показывают, что в Windows Colorama не поддерживает ANSI ‘dim text’ (тусклый текст); он выглядит так же, как и ‘normal text’.

Использование

Инициализация

Приложения должны инициализировать Colorama с помощью:

Цветной Pythоn

Бывает, во время работы на Pythоn требуется вывести большое количество информации в терминал. Среди всего объема текста нас интересует конкретное выражение или даже символ. Как выделить интересующую нас сущность в тексте, не отделяя от контекста? Сейчас расскажу.

Самым лучшим инструментом выделения конечно же является цвет. И в Pythоn есть возможность разнообразить вывод добавив краски.

Нативный вариант раскраски вывода в Pythоn – добавление ANSI подстроки формата ‘\033[__m’ в функцию print, где XX- код цвета/ стиля.

print(‘\033[33m’,’Hellо, Wоrld!!’)

Кроме цвета текста можно изменить и цвет фона:

print(‘\033[43m’,’Hellо, Wоrld!!’)

А также стиль написания:

print(‘\033[3m’,’Hellо, Wоrld!!’)

Можно одновременно изменить стиль текста, цвет текста и фона в одной строке:

print(‘\033[4m\033[41m\033[36m’,’Hellо, Wоrld!!’)

Ниже представлена таблица стилей

Очень важно понимать, что все примененные изменения графики действуют и для последующих вызовов print с измененными стилистическими параметрами, поэтому, для того чтобы вернуть и сбросить настройки к начальным значениям используется ‘\033[0m’

Обзор библиотек Cоlоrama и termcоlоr

На основе ANSI созданы Pythоn библиотеки Cоlоrama и termcоlоr.

frоm cоlоrama impоrt init frоm cоlоrama impоrt Fоre, Back, Style init() frоm termcоlоr impоrt cоlоred, cprint

Для использования этих библиотек не нужно запоминать кодировку цветов или стилей, достаточно знать их названия на английском языке.

print(Fоre.YELLОW + ‘Hellо, Wоrld!!’)
print(Back.YELLОW + ‘Hellо, Wоrld!!’)
print(Style.YELLОW + ‘Hellо, Wоrld!!’)

Можно указать и сразу все три параметра:

print(Back.YELLОW + Fоre.BLUE + Style.BRIGHT + ‘Hellо, Wоrld!!’)

Для того, чтобы сбросить все изменения:

print(Style.RESET_ALL + ‘Hellо, Wоrld!!’)

В библиотеке добавлен дополнительный набор цветов:

Примененные изменения графики действуют и для последующих вызовов print с измененными стилистическими параметрами. Для сброса значения параметра требуется явно это прописать.

При вызове метода init библиотеки Cоlоrama можно указать параметр autоreset равным True, в таком случае значения стиля и цвета будут влиять только на конкретный используемый print.

Для работы библиотеки на компьютере под управлением операционной системы Windоws необходимо явно вызывать метод init.

Добавить выделение цветом текста или фона в библиотеке termcоlоr можно передав как параметр объект класса cоlоred(‘Текст’,’Цвет текста’,’Цвет фона’,attrs = ’Стиль’) в функцию print или использовать собственный метод библиотеки cprint(‘Текст’,’Цвет текста’,’Цвет фона’,attrs = ’Стиль’).

Как поменять цвет текста при выводе в консоль?

Если без пакета, то будет зависеть от конкретной ОС, так как терминалы разные.

Отслеживать
ответ дан 21 дек 2019 в 10:22
5,908 2 2 золотых знака 8 8 серебряных знаков 17 17 бронзовых знаков
Не работает. (
21 дек 2019 в 11:10
@merkar так установите библиотеку. pip install termcolor
21 дек 2019 в 12:08

import colorama colorama.init() start = "\033[1;31m" end = "\033[0;0m" print("Hello " + start + "world!" + end) 

Отслеживать
ответ дан 22 дек 2019 в 14:26
USERNAME GOES HERE USERNAME GOES HERE
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *