Как использовать библиотеку Colorama для окрашивания вывода командной строки
Замечательно создавать программы командной строки: они выполняют свою работу, не тратя часы на то, чтобы заставить работать графический интерфейс. Но иногда было бы лучше иметь более привлекательную программу, которую невозможно реализовать, используя только функцию print
.
Хорошим компромиссом является использование библиотеки colorama
. Это позволяет вам очень легко раскрашивать строки, написанные на терминале, и вы будете удивлены, насколько это может улучшить внешний вид вашей программы.
Итак, давайте посмотрим, как его использовать!
Как это работает?
Принцип работы библиотеки очень прост. Он использует последовательности escape-символов ANSI. Когда терминал читает одну из этих последовательностей, она не записывается. Вместо этого терминал получает указание использовать другой цвет (или шрифт) для следующего вывода.
Например, строка '\033[92m'
представляет зеленый цвет, а '\033[0m'
используется для возврата к стандартному цвету терминала.
Таким образом, следующий код напечатает "Hello World"
зеленым цветом, а затем восстановит исходный цвет:
GREEN = '\033[92m' END_COLOR = '\033[0m' print(GREEN + "Hello World" + END_COLOR)
Примечание. К сожалению, этот код не работает в командной строке Windows, но вы все равно можете использовать библиотеку Colorama!
Использование Колорамы
Теперь, когда мы понимаем, как работает библиотека, давайте посмотрим, как ее использовать!
Начнем с установки библиотеки:
pip install colorama
Теперь мы можем начать кодировать. Рекомендуется (и обязательно, если вы работаете в Windows) добавить следующий код в начало скрипта:
from colorama import init init()
Это используется, чтобы убедиться, что командная строка Windows правильно обрабатывает последовательности ANSA. В противном случае он просто распечатает последовательность символов.
Если вы используете другую операционную систему, метод init
ничего не сделает, но вы все равно должны добавить его в свою программу, чтобы убедиться, что он будет корректно работать на любой платформе.
Теперь мы можем начать пользоваться библиотекой. Есть три основных класса:
Fore
используется для изменения цвета текста;Style
, чтобы изменить яркость текста;Back
, чтобы изменить фон текста (т.е. выделить текст).
Изменение цвета
Мы можем начать с изменения цвета текста.
Colorama позволяет использовать восемь различных цветов: черный, красный, зеленый, желтый, синий, пурпурный, голубой, белый. Они реализованы как переменные в классе Fore
. Их название — это название цвета, написанное заглавными буквами. Например:
from colorama import Fore, init init() print('Now is not colored') print(Fore.RED + 'some red text') print(Fore.GREEN + 'some green text') print(Fore.MAGENTA + 'some magenta text') print(Fore.RESET + 'Back to normal')
Как видите, мы также использовали другую переменную, RESET
. это используется для восстановления исходного цвета текста.
Изменение фона
Следующий класс, который мы увидим, это Back
. Это реализует то же ключевое слово, что и класс Fore
: BLACK
, RED
, GREEN
, YELLOW
, BLUE
, MAGENTA
, CYAN
, WHITE
, RESET
.
Однако в этом случае цвет будет использоваться для изменения фона строки (т.е. для выделения текста). Например:
from colorama import Back, init init() print('Now is not highlighted') print(Back.RED + 'some red background') print(Back.GREEN + 'some green background') print(Back.MAGENTA + 'some magenta background') print(Back.RESET + 'Back to normal')
Изменение яркости
Наконец, мы можем использовать класс Style
для изменения яркости вывода.
В этом классе есть три ключевых слова:
BRIGHT
сделать текст ярким;DIM
сделать текст тусклым (хотя выглядит как обычный текст);NORMAL
, чтобы иметь нормальную яркость.
from colorama import Style, init init() print('Normal text') print(Style.BRIGHT + 'Bright text') print(Style.NORMAL + 'Normal text')
Кроме того, этот класс также реализует ключевое слово RESET_ALL
, которое используется для сброса всего (яркости, цвета, фона) к их нормальным значениям.
from colorama import Fore, Back, Style, init init() print(Style.BRIGHT + 'Now the text is bright') print(Fore.RED + 'Now the text is bright and red') print(Back.GREEN + 'Now the text is bright, red and with green background') print(Style.RESET_ALL + 'Now everything is back to normal')
Заключение
Спасибо, что дочитали до конца! Если вы хотите узнать больше о библиотеке Colorama, ознакомьтесь с официальной документацией:
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.