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

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

Как изменить цвет текста в Python

Как изменить цвет текста в Python

Выводить текст на консоли в разных цветах довольно удобно и практично, от создания причудливых сценариев сканирования до выделения различных типов сообщений журнала (отладочные, информационные, критические и т. Д.) в ваших программах. В данной статье вы узнаете, как печатать цветной текст на Python с помощью библиотеки colorama.

Для работы нам требуется установить библиотеку:

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

Далее создадим простой Python файл:

from colorama import init, Fore, Back, Style

'''
мы вызываем функцию init(), которая необходима в среде Windows для правильной работы colorama, на других платформах она ничего не делает, поэтому вы можете удалить ее.
'''

Далее определяем все доступные цвета переднего плана в списке "FOREGROUND" и цвета фона в списке "BACKGROUND", мы также определяем список BRIGHTNESS для различных настроек яркости.

# список доступных фронтальных цветов

FOREGROUND = [ Fore.BLACK, Fore.RED, Fore.GREEN, Fore.YELLOW, Fore.BLUE, Fore.MAGENTA, Fore.CYAN, Fore.WHITE ]

# список доступных фоновых цветов

BACKGROUND = [ Back.BLACK, Back.RED, Back.GREEN, Back.YELLOW, Back.BLUE, Back.MAGENTA, Back.CYAN, Back.WHITE ]

BRIGHTNESS = [ Style.DIM, Style.NORMAL, Style.BRIGHT ]

'''
Далее давайте создадим функцию, которая обертывает обычную функцию print() Python, но с возможностью установки цвета и яркости
'''

def print_with_color(s, color=Fore.WHITE, brightness=Style.NORMAL, **kwargs):
"""Служебная функция, обертывающая обычную функцию "печать()"
, но с цветами и яркостью"""
print(f"", **kwargs)

Мы просто используем print() внутри, но дополняем текст яркостью и цветовыми кодами, а также добавляем Style.RESET_ALL в конце, чтобы сбросить цвет и яркость по умолчанию каждый раз, когда мы используем функцию.

Мы также передаем **kwargs, чтобы мы могли использовать другие ключевые аргументы функции print(), такие как end и sep.

Теперь, когда у нас есть наша функция, давайте использовать все цвета переднего плана и напечатаем один и тот же текст разными цветами и каждый с разной яркостью:

for fore in FOREGROUND:
for brightness in BRIGHTNESS:
print_with_color("Myrusakov!", color=fore, brightness=brightness)

Изображение

При этом черный цвет не будет виден на экране.

Теперь используем фоновые цвета:

for fore in FOREGROUND:
for back in BACKGROUND:
for brightness in BRIGHTNESS:
print_with_color("Myrusakov", color=back+fore, brightness=brightness, end=' ')
print()

Изображение

Теперь вы знаете все доступные цвета переднего плана и фона, а также значения яркости в библиотеке colorama на Python.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 0 ):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Как печатать цветной текст в Python

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

В этой статье показано, как распечатать цветной вывод в терминале на Python с библиотеками и без них.

Последовательности выхода ANSI

Ваш телетайп (TTY) или, скорее, ваш терминал не только способен отображать вывод программы. Он может отображать движущийся курсор, раскрашивать текст, очищать весь экран и многое другое, чем просто статический вывод. Возможно, вы видели утилиты командной строки с красочным текстом и индикаторами выполнения. Как мы контролируем представление данных, которые мы выводим на терминал?

Мы используем escape-последовательности / коды ANSI . Это специальные строки, которые изменяют поведение терминала. Знакомый пример — это \n , который представляет собой последовательность новой строки. При вводе этого символа выводится новая строка.

Текст на вашем терминале окрашен в соответствии с escape-последовательностями ANSI. В этой статье основное внимание уделяется escape-последовательностям для раскрашивания текста.

В терминалах широко используются две цветовые схемы:

  • 16 цветов (8 фоновых + 8 передних)
  • 256 цветов

Начнем раскрашивать наш вывод с помощью 16-цветного варианта.

16 цветов в Raw Python

Схема из 16 цветов включает два набора по 8 цветов в каждом (8 фонов и 8 передних планов), и их можно отобразить в терминале, используя следующий синтаксис:

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

2 . Цветовые коды для красного текста переднего плана — 31 и 43 для желтого фона. Итак, имея это в виду, синтаксис для представления этого макета:

Выполните указанную выше команду в интерпретаторе Python (или в файле). Вы увидите этот вывод:

Это не совсем так, наш пошлый текст перетекает на следующую строку. Нам нужна точка сброса, чтобы остановить печать цветов. Это можно сделать, добавив к строке \033[0;0m

Код \033[0;0m представляет собой шаблон сброса, который возвращает терминал к его исходной цветовой схеме. Это даст следующий результат:

Смотрится намного лучше.

16 цветов в Colorama — встроенный модуль

Colorama — это пакет Python, который предоставляет методы для печати цветного текста на Python. Поддерживается только 16-цветная схема. Модуль подготавливает escape-последовательности ANSI для создания цветного текста. Установим модуль с помощью pip :

Мы рекомендуем вам установить его в виртуальной среде . После настройки приступим к печати цветного текста с помощью Colorama:

Сначала мы импортируем функции: init() (чтобы инициализировать модуль и установить для autoreset значение True чтобы нам не приходилось сбрасывать его вручную), Fore (текстовый объект Back (объект фона) и Style (объект стиля ). У каждого объекта есть свой набор констант, которые можно вызывать в функции print() .

Добавляя эти компоненты удобным для человека способом, Colorama преобразует такие значения, как YELLOW в 43 для объекта Back RED в 31 для Fore и т. Д. Под капотом мы получаем последовательность ANSI, как и в прошлый раз. Однако нам необязательно знать коды самостоятельно — Colorama делает это за нас.

Шаблон сброса не требуется, поскольку мы установили для аргумента autoreset True при инициализации экземпляра.

Запуск кода отобразит это:

256 цветов в Raw Python

С развитием технологий 256-цветная схема чаще всего встречается в терминалах. Если вы работаете в ОС на базе Linux, вы можете проверить цветовую схему, поддерживаемую терминалом, введя следующую команду:

Если эта команда возвращает xterm-256color , значит, ваш терминал поддерживает максимум 256 цветов.

Хотите знать, что это за цвета?

Мы можем приступить к делу сразу после того, как разберемся с синтаксисом 256-цветовой схемы. Работа с 256 цветами немного отличается от работы с 16-цветовой схемой:

Есть заполнитель, чтобы определить, будет ли цвет применяться к тексту или к фону; 38; 5; для текста и 48; 5; для фона. Далее следует цветовой код от 0 до 255 .

Основываясь на приведенном выше синтаксисе, давайте попробуем воссоздать логотип StackAbuse в Python с помощью ANSI Escape Sequence.

Логотип содержит бледно-серый фон ( \033[48;5;236m ) со словами: Stack in white ( \033[38;5;231m )] и Abuse — оранжевым ( \033[38;5;208m ). И, конечно же, код сброса должен быть встроен в строку.

При этом мы можем воссоздать логотип с помощью этой последовательности ANSI:

Потрясающие! Какие еще цвета может печатать терминал? Давайте посмотрим, распечатав все 256 цветов, поддерживаемых терминалом:

Этот сценарий содержит две функции, которые печатают переданную вами переменную в соответствующих escape-последовательностях ANSI. Как только мы запустим скрипт и передадим x в определенном диапазоне, например (30,38] для 16-цветовой схемы или (0-255] для 256-цветной схемы, он распечатает индексы в цвета при этих значениях.

В терминале будут распечатаны обе схемы с цветовой кодировкой:

Это может быть очень полезно в качестве краткого справочника при создании утилит командной строки.

Заключение

В этом руководстве мы рассмотрели, как распечатать цветной вывод для символов, которые мы отправляем в поток stdout Мы изучили, как это сделать, используя встроенные функции Python, а также как использовать библиотеку Colorama.

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

Всем привет сегодня я хотел рассказать вам «Как сделать цветной вывод текста в Python?» это даже может сделать не опытный человек не имея каких-то знаний. Поэтому если вам интересно то продолжайте читать и тогда все поймете.

C помощью встроенных средств языка

На Python с помощью ANSI-код можно делать цвет, фон и т.д. Это очень мощный и удобный инструмент, с его помощью программист может напрямую определять цвет текста. ANSI коды работают на большинстве дистрибутивов Linux, но не поддерживаются консолью операционной системы Windows до Windows 10.

Изменять цвет текста с помощью ANSI кодов можно разными способами, например, использоваться функции или даже написать свой класс-обёртку для ANSI.

Использовать ANSI коды просто, для этого нужно знать базовый синтаксис и сами коды. Разбор на примере кода «\033[31m\033[43m»:

«033[» — обозначение того, что дальше идет какой-то управляющий цветом код.

37m — это код цвета а именно красный.

43m — это код цвет фона для текста.

Именно через этот ANSI-код мы можем делать текст разноцветным, не забывайте ставить «» иначе будет ошибка.

Давайте сделаем вывод текста на консоле через функции.

Через print() мы задали цвет текста «ПРИВЕТ» синим цветом. Также можно добавить фон и стиль текста все в одну строку.

\033[3m — отвечает за стилб текста в данном случае это курсив.

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

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