Как изменить цвет текста в Python
Выводить текст на консоли в разных цветах довольно удобно и практично, от создания причудливых сценариев сканирования до выделения различных типов сообщений журнала (отладочные, информационные, критические и т. Д.) в ваших программах. В данной статье вы узнаете, как печатать цветной текст на Python с помощью библиотеки colorama.
Для работы нам требуется установить библиотеку:
>>>pip install colorama
Мы можем установить нужную библиотеку как глобально, так и в изолированную папку — виртуальную среду. Для простоты мы используем первый вариант, хотя рекомендуется использовать второй.
Далее создадим простой Python файл:
from colorama import init, Fore, Back, Style
'''
мы вызываем функцию init(), которая необходима в среде Windows для правильной работы colorama, на других платформах она ничего не делает, поэтому вы можете удалить ее.
'''
init()
'''
Далее определяем все доступные цвета переднего плана в списке "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"{brightness}{color}{s}{Style.RESET_ALL}", **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)
# вызовем скрипт
>>>python multicolore.py
Результат:
При этом черный цвет не будет виден на экране.
Теперь используем фоновые цвета:
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.