Цветной вывод текста в 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:
Эти скриншоты показывают, что в Windows Colorama не поддерживает ANSI ‘dim text’ (тусклый текст); он выглядит так же, как и ‘normal text’.
Использование
Инициализация
Приложения должны инициализировать Colorama с помощью:
Цветной вывод текста в Python
Python обладает достаточным количеством инструментов, чтобы выводить текст в консоль в любом цвете. Такой вывод не требует особых навыков, реализуется в несколько строк кода и используется как для выделения важной информации, так и для придания красоты тексту.
Сделать текст цветным можно двумя способами: использовать встроенные средства языка или библиотеки. Каждый способ имеет плюсы и минусы, также существуют нюансы, касающиеся изменения цвета текста в консоли Windows.
C помощью встроенных средств языка
В Python можно форматировать текст с помощью ANSI кодов. Это очень мощный и удобный инструмент, с его помощью программист может напрямую определять цвет текста.
ANSI коды работают на большинстве дистрибутивов Linux, но не поддерживаются консолью операционной системы Windows до Windows 10. В статье есть отдельный пункт про то, как запускать на Windows!
На разных дистрибутивах Linux и в Windows 10 цвет текста, созданный при помощи одного и того же ANSI кода, может отличаться. Это зависит от настроек консоли, её кастомизации пользователем и некоторых других факторов.
Изменять цвет текста с помощью ANSI кодов можно разными способами, например, использоваться функции или даже написать свой класс-обёртку для ANSI.
Использовать ANSI коды просто, для этого нужно знать базовый синтаксис и сами коды. Разбор на примере кода «\033[31m\033[43m»:
- \033 — обозначение того, что дальше идет какой-то управляющий цветом код;
- [31m — цвет текста (красный);
- [43m — цвет фона (жёлтый).
После вывода этого в консоль, далее выводимая информация будет красного цвета на жёлтом фоне. Сбросить к начальным значениям : \033[0m .
Базовые коды:
- \033[0-7m — это различные эффекты, такие как подчеркивание, мигание, жирность и так далее;
- \033[30-37m — коды, определяющие цвет текста (черный, красный, зелёный, жёлтый, синий, фиолетовый, сине-голубой, серый);
- \033[40-47m — коды, определяющие цвет фона.
Цвета
Цвет | Текст | Фон |
Чёрный | 30 | 40 |
Красный | 31 | 41 |
Зелёный | 32 | 42 |
Жёлтый | 33 | 43 |
Синий | 34 | 44 |
Фиолетовый | 35 | 45 |
Бирюзовый | 36 | 46 |
Белый | 37 | 47 |
Эффекты
Код | Значение |
0 | Сброс к начальным значениям |
1 | Жирный |
2 | Блёклый |
3 | Курсив |
4 | Подчёркнутый |
5 | Редкое мигание |
6 | Частое мигание |
7 | Смена цвета фона с цветом текста |
Функции для вызова
Быстро покрасить строку в нужный цвет можно с помощью функций. Им нужно дать говорящие имена, передать в качестве аргумента строку и использовать в их теле правильный ANSI код.
Подход удобен тем, что можно объявить N функций, которые форматируют любой текст в нужный цвет и использовать их во всех своих программах, достаточно лишь импортировать модуль.
def out_red(text): print("\033[31m <>" .format(text)) def out_yellow(text): print("\033[33m <>" .format(text)) def out_blue(text): print("\033[34m <>" .format(text)) out_red("Вывод красным цветом") out_yellow("Текст жёлтого цвета") out_blue("Синий текст")
Мы меняли только цвет текста, но можно менять и цвет фона, добавлять дополнительные стили. Например, чтобы вывести подчёркнутый текст белого цвета на синем фоне, нужно написать так:
print("\033[4m\033[37m\033[44m<>\033[0m".format("Python 3"))
Вот так будет выглядеть вывод:
Обратите внимание на строку print("\033[4m\033[37m\033[44m<>\033[0m".format("Python 3")) .
Здесь мы вывод осуществляли следующим образом:
- \033[4m — подчёркнутый;
- \033[37m — белая надпись;
- \033[44m — синий фон;
- <> — заменится на «Python 3»;
- \033[0m — сброс к начальным значениям.
Как вывести цветной текст в консоль на Windows
В Linux по умолчанию встроена поддержка ANSI кодов консолью, а в Windows — нет. Это объясняется тем, что для линукса консоль является основным рабочим инструментом. В Windows консоль используется редко, поэтому нет смысла встраивать в неё подобные вещи.
Однако в Windows 10, начиная с версии Threshold 2, разработчики добавили в консоль поддержку управляющих кодов. Однако из-за того, что далеко не все пользуются новой ОС, писать консольные приложения с цветным текстом все ещё приходится с помощью дополнительных библиотек.
Так библиотека colorama поддерживает работу с Windows 10! Поэтому рекомендуется её использование.
Для того, чтобы код, написанный с помощью внутренних средств Python 3 или с помощью библиотеки termcolor заработал в Windows 10, надо включить поддержку ANSI для stdout в запущенной консоле.
Сделать это можно следующим образом:
import ctypes kernel32 = ctypes.windll.kernel32 kernel32.SetConsoleMode(kernel32.GetStdHandle(-11), 7)
Вывод цветного текста в консоль с colorama
Colorama — самая популярная библиотека для вывода цветного текста на Python 3. Colorama позволяет использовать ANSI коды не только в Linux, но и в Windows.
Использование функций и методов библиотеки упрощает написание кода и делает более простым для поддержки. Больше не нужно запоминать или копировать ANSI коды. Команды настолько просты и интуитивно понятны, что с задачей справиться даже обычный пользователь.
Использование сторонней библиотеки, такой как colorama, не приводит к каким-то негативным эффектам. Перед использованием библиотеки colorama, её следует установить с помощью команды в консоле pip install colorama .
Приведём пример использования colorama:
import colorama from colorama import Fore, Back, Style colorama.init() print(Fore.RED + 'Красный текст') print(Back.BLUE + 'Синий фон') print(Style.RESET_ALL) print('Снова обычный текст')
Здесь мы импортировали модули для работы с текстом и фоном. И так же как и раньше мы выводили всё встроенными средствами Python, вывели всё в консоль.
Стоит обратить внимание на функцию init. Если её забыть запустить, то не будет поддерживаться вывод на Windows 10.
Только теперь нам не надо писать \033[44m, а достаточно написать Fore.BLUE, что конечно же удобно. Style.RESET_ALL — это сброс цветов консоли к начальным значениям.
Цветной текст с помощью termcolor
Эта библиотека даёт программисту исчерпывающий инструментарий для работы с цветом текста.
Часто termcolor используют вместе с colorama. Termcolor используют непосредственно для написания кода, действительно, её синтаксис более удобный и простой.
Для установки библиотеки termcolor следует выполнить в консоле команду pip install termcolor .
from termcolor import colored, cprint print(colored('Привет мир!', 'red', attrs=['underline'])) print('Привет, я люблю тебя!') cprint('Вывод с помощью cprint', 'green', 'on_blue')
Здесь мы воспользовались функциями colored и cprint. Первая позволяет создать строку для последующего вывода с необходимыми параметрами цветов и эффектов. Вторая сразу производит вывод в консоль.
Заключение
Если мы делаем пару функций для вывода в консоль цветных сообщений об ошибках и предупреждениях, то можно их сделать и не подключая библиотек. Правда при подключении библиотеки код более читаемым становится.
При выборе между библиотеками colorama и termcolor, я бы остановился бы на colorama. Не только исходя из её большей популярности, но и из-за того, что она поддерживает работу с командной строкой Windows 10. Хотя cprint удобная функция в termcolor.
Как изменить цвет текста в Python: простой гид для начинающих
Для изменения цвета текста в Python можно использовать модуль colorama. Для начала установите его, выполнив команду:
pip install colorama
После установки вы можете использовать следующий код для изменения цвета текста:
from colorama import Fore print(Fore.RED + "Красный текст") print(Fore.GREEN + "Зеленый текст") print(Fore.BLUE + "Синий текст")
Вышеуказанный код использует модуль colorama.Fore, чтобы установить цвет текста. Просто добавьте соответствующую строку перед текстом, который вам нужно изменить цветом. Примеры представлены для красного, зеленого и синего цветов. Вы можете использовать также другие цвета, такие как Fore.YELLOW (желтый), Fore.CYAN (голубой), Fore.MAGENTA (фуксия) или Fore.WHITE (белый).
Детальный ответ
Как изменить цвет текста в Python
Изменение цвета текста в Python может придать вашему коду интересный и выразительный вид. В этой статье мы рассмотрим несколько способов, как изменить цвет текста при выводе на консоль в Python.
1. Использование ANSI Escape Sequences
ANSI Escape Sequences - это специальные символы, которые позволяют управлять форматированием вывода на консоль. Для изменения цвета текста можно использовать следующие escape-последовательности:
# Импортируем модуль colorama import colorama # Инициализируем colorama colorama.init() # Выводим текст красным цветом print(colorama.Fore.RED + "Привет, мир!") # Восстанавливаем обычный цвет текста print(colorama.Style.RESET_ALL)
В приведенном выше примере мы использовали модуль colorama для изменения цвета текста. Мы инициализировали модуль с помощью colorama.init() , затем использовали colorama.Fore.RED для установки красного цвета текста, и наконец, с помощью colorama.Style.RESET_ALL вернули цвет текста к обычному.
2. Использование библиотеки termcolor
Библиотека termcolor предоставляет простой и удобный способ изменения цвета текста в Python. Вот пример использования библиотеки termcolor:
# Устанавливаем библиотеку termcolor, если она не установлена # pip install termcolor # Импортируем модуль termcolor from termcolor import colored # Выводим текст с цветом print(colored("Привет, мир!", "red"))
В примере выше мы использовали функцию colored() из библиотеки termcolor, где первый аргумент - текст, а второй аргумент - цвет. Мы указали "red" в качестве цвета, чтобы вывести текст красным цветом.
3. Использование библиотеки colorlog
Библиотека colorlog предоставляет возможность изменять цвет текста в журналах (logs) в Python. Вот пример использования библиотеки colorlog:
# Устанавливаем библиотеку colorlog, если она не установлена # pip install colorlog # Импортируем модуль colorlog import colorlog # Создаем объект logger logger = colorlog.getLogger() # Устанавливаем уровень логирования logger.setLevel(colorlog.colorlog.logging.DEBUG) # Создаем форматтер formatter = colorlog.ColoredFormatter( "%(log_color)s%(levelname)s%(reset)s %(message)s" ) # Создаем обработчик handler = colorlog.StreamHandler() handler.setFormatter(formatter) # Добавляем обработчик к logger logger.addHandler(handler) # Выводим лог с цветом logger.debug("Привет, мир!")
В приведенном выше примере мы использовали модуль colorlog для изменения цвета текста в логах. Мы создали объект logger, установили уровень логирования, создали форматтер с помощью colorlog.ColoredFormatter() , создали обработчик с помощью colorlog.StreamHandler() и добавили обработчик к logger. Затем мы использовали logger.debug() для вывода лога с цветом.
Заключение
В этой статье мы рассмотрели несколько способов изменения цвета текста в Python. Мы использовали ANSI Escape Sequences, библиотеки termcolor и colorlog для достижения этой цели. Теперь вы можете добавлять цвет в свой код и делать его более увлекательным и выразительным.
Как поменять цвет текста в Python: легкий гайд для начинающих
Поменять цвет текста в Python можно с помощью модуля colorama. Вот простой пример использования: from colorama import init, Fore # Инициализация модуля colorama init() # Поменять цвет текста на красный print(Fore.RED + "Текст")
Детальный ответ
Как в питоне поменять цвет текста
Добро пожаловать! Сегодня мы поговорим о том, как изменить цвет текста в языке программирования Python. Если вам нужно визуально выделить текст на экране, изменение его цвета может быть полезным. Давайте рассмотрим несколько способов сделать это.
1. Модуль colorama
Один из наиболее популярных способов изменить цвет текста в Python - использовать модуль colorama . Для начала, убедитесь, что у вас установлен этот модуль. Вы можете установить его с помощью команды:
pip install colorama
Здесь мы использовали менеджер пакетов pip , чтобы установить colorama . После установки модуля, введите следующий код, чтобы изменить цвет текста:
from colorama import init, Fore # Инициализация модуля init() # Изменение цвета текста print(Fore.RED + "Этот текст будет красным") print(Fore.GREEN + "Этот текст будет зеленым") print(Fore.BLUE + "Этот текст будет синим") # Возвращение стандартного цвета print(Fore.RESET + "Этот текст будет возвращен к стандартному цвету")
В этом примере мы сначала импортируем необходимые функции из модуля colorama . Затем мы инициализируем модуль с помощью init() . Это необходимо делать один раз перед использованием цветов. После этого, используя Fore , мы можем изменить цвет текста. Fore.RED изменяет цвет на красный, Fore.GREEN - на зеленый, а Fore.BLUE - на синий. Fore.RESET возвращает цвет текста к его стандартному значению. Запустите этот код в своей среде разработки, и вы увидите изменение цвета текста для каждой строки.
2. Библиотека termcolor
Еще одним способом изменить цвет текста в Python является использование библиотеки termcolor . Эта библиотека предоставляет более широкий спектр цветов. Установите termcolor с помощью команды:
pip install termcolor
После установки подключитесь к библиотеке, используя следующий код:
from termcolor import colored # Изменение цвета текста print(colored("Этот текст будет красным", "red")) print(colored("Этот текст будет зеленым", "green")) print(colored("Этот текст будет синим", "blue"))
В этом примере мы импортируем функцию colored из библиотеки termcolor . Затем мы используем эту функцию, чтобы изменить цвет текста. Второй аргумент функции указывает желаемый цвет: "red" для красного, "green" для зеленого, "blue" для синего. Запустите этот код, и вы увидите изменение цвета текста для каждой строки.
3. Форматирование строки
Кроме использования специальных модулей и библиотек, вам также доступно форматирование строки для изменения цвета текста. Необходимо использовать escape-последовательности, начинающиеся с символа \033 , за которым следует код цвета. Вот пример кода, который изменяет цвет текста:
# Изменение цвета текста print("\033[31mЭтот текст будет красным") print("\033[32mЭтот текст будет зеленым") print("\033[34mЭтот текст будет синим") # Возвращение стандартного цвета print("\033[0mЭтот текст будет возвращен к стандартному цвету")
В этом примере, \033[31m изменяет цвет текста на красный, \033[32m - на зеленый, \033[34m - на синий. \033[0m возвращает цвет текста к его стандартному значению. Запустите этот код, и вы увидите изменение цвета текста для каждой строки.
Заключение
Теперь вы знаете несколько способов изменить цвет текста в языке программирования Python. Вы можете использовать модуль colorama , библиотеку termcolor или форматировать строки с помощью escape-последовательностей. Используйте эти техники, чтобы сделать ваш текст более наглядным и привлекательным.