
Для работы с colorama достаточно выполнить инициализацию с помощью init() и применять цвета через константы Fore и Back. Например, Fore.RED изменяет цвет текста на красный, а Back.YELLOW – фон на жёлтый. Этот метод гарантирует корректное отображение как на Windows, так и на Linux.
Termcolor позволяет комбинировать цвет текста, фон и атрибуты, такие как bold или underline. Вызывая функцию colored(‘текст’, ‘red’, ‘on_yellow’, [‘bold’]), можно быстро создавать визуально различимые строки, что удобно для логирования и CLI-инструментов.
Использование ANSI-кодов подходит для более детализированного контроля и не требует сторонних библиотек. Формат кода \033[<код>m позволяет задавать цвет текста, фон и стиль, например, \033[31;43;1mТекст\033[0m. Это особенно полезно в сценариях, где библиотечные зависимости нежелательны.
Выбор метода зависит от задач: для переносимых приложений лучше colorama, для быстрого форматирования отдельных строк – termcolor, для минимальных зависимостей и полной настройки – ANSI-коды. В следующих разделах будут рассмотрены подробные примеры с использованием каждого подхода.
Изменение цвета текста в Python: примеры и способы
В Python изменить цвет текста можно несколькими методами. Наиболее популярные варианты включают использование ANSI-кодов, сторонних библиотек и встроенных средств терминала.
1. ANSI-коды

ANSI-коды позволяют управлять цветом текста в терминале без дополнительных библиотек. Синтаксис:
print("\033[31mКрасный текст\033[0m")
Основные коды цветов:
- 30 – черный
- 31 – красный
- 32 – зеленый
- 33 – желтый
- 34 – синий
- 35 – пурпурный
- 36 – голубой
- 37 – белый
- 0 – сброс цвета
2. Библиотека colorama
Упрощает работу с цветами и обеспечивает кроссплатформенность.
from colorama import Fore, Style, init
init()
print(Fore.RED + "Красный текст" + Style.RESET_ALL)
Доступные цвета:
- Fore.BLACK, Fore.RED, Fore.GREEN, Fore.YELLOW
- Fore.BLUE, Fore.MAGENTA, Fore.CYAN, Fore.WHITE
- Style.RESET_ALL – сброс форматирования
3. Библиотека termcolor
Позволяет задавать цвет текста и фона, а также стили (жирный, подчеркивание).
from termcolor import colored
print(colored("Зеленый текст на желтом фоне", "green", "on_yellow", ["bold"]))
Параметры:
- Цвет текста: grey, red, green, yellow, blue, magenta, cyan, white
- Цвет фона: on_grey, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, on_white
- Стили: bold, dark, underline, blink, reverse, concealed
4. f-строки и ANSI-коды
Можно объединять с f-строками для динамического изменения цвета:
color = 32
text = "Текст зеленого цвета"
print(f"\033[{color}m{text}\033[0m")
5. Рекомендации по использованию

- Для кроссплатформенных решений лучше использовать
colorama. - ANSI-коды подходят для Linux и macOS, на Windows нужно инициализировать поддержку через
colorama.init(). - Для комбинирования цвета и стиля удобна
termcolor.
Использование ANSI-кодов для окраски текста в консоли

ANSI-коды позволяют управлять цветом текста и фона в терминале, используя последовательности вида \033[<код>m. Основные цвета текста задаются кодами от 30 до 37, фон – от 40 до 47. Например, \033[31m окрашивает текст в красный, а \033[44m устанавливает синий фон.
Для сброса форматирования используется код \033[0m. Корректное использование требует закрытия цветового кода перед следующей строкой без окраски. Пример: print("\033[32mЗеленый текст\033[0m обычный текст").
Сочетание стилей доступно через добавление кода разделенного точкой с запятой. Например, \033[1;33;45m применяет жирный текст желтого цвета на пурпурном фоне. Поддерживаются стандартные стили: жирный (1), подчеркнутый (4), мигающий (5).
Для удобства часто создают словари с кодами цветов. Например: colors = {"red":"\033[31m", "green":"\033[32m", "reset":"\033[0m"}. Это упрощает повторное использование и делает код более читаемым.
ANSI-коды работают в большинстве терминалов Linux и macOS. На Windows с версией 10 и выше включение поддержки ANSI возможно через команду os.system('') или использование модуля colorama, который обеспечивает совместимость и автоматический сброс стиля.
Важно избегать вложенных кодов без сброса, чтобы цвет не распространялся на последующие строки. Для динамического изменения цвета текста внутри одной строки можно комбинировать несколько кодов, но каждый сегмент должен заканчиваться \033[0m.
Применение библиотеки colorama для кроссплатформенной окраски

Библиотека colorama обеспечивает консистентное отображение цветного текста в терминалах Windows, Linux и macOS. Она автоматически преобразует ANSI-коды, что устраняет проблемы с совместимостью на Windows.
Установка выполняется через pip: pip install colorama. После установки необходимо инициализировать библиотеку вызовом colorama.init(), что активирует поддержку ANSI-последовательностей.
Для окраски текста используются константы из модулей Fore (цвет текста), Back (цвет фона) и Style (стиль текста, например BRIGHT, DIM, RESET_ALL). Например:
from colorama import Fore, Back, Style, init
init()
print(Fore.RED + ‘Красный текст’ + Style.RESET_ALL)
print(Back.GREEN + ‘Зелёный фон’ + Style.RESET_ALL)
print(Style.BRIGHT + ‘Яркий текст’ + Style.RESET_ALL)
Изменение цвета отдельных слов с помощью termcolor

Библиотека termcolor позволяет окрашивать отдельные слова и фразы в терминале. Для установки используйте:
pip install termcolor
Импорт модуля:
from termcolor import colored
Для окраски текста применяется функция colored с параметрами: текст, цвет, атрибуты. Основные цвета:
greyredgreenyellowbluemagentacyanwhite
Примеры использования:
print(colored('Ошибка!', 'red'))
print(colored('Успех', 'green', attrs=['bold']))
print(colored('Предупреждение', 'yellow', attrs=['underline']))
Можно комбинировать цвет и фон. Доступные фоны:
on_greyon_redon_greenon_yellowon_blueon_magentaon_cyanon_white
Пример с фоном:
print(colored('Внимание!', 'white', 'on_red'))
print(colored('Информация', 'blue', 'on_grey', attrs=['bold']))
Атрибуты форматирования:
bold– жирный текстdark– затемнённыйunderline– подчёркнутыйblink– мигающий (поддержка зависит от терминала)reverse– инверсия цвета текста и фонаconcealed– скрытый текст
Для окрашивания нескольких слов в одной строке используйте конкатенацию:
from termcolor import colored
text = colored('Ошибка:', 'red') + ' ' + colored('Неверный ввод', 'yellow')
print(text)
Создание граадиента текста в консоли с помощью Python
Для создания градиента текста в консоли используется последовательная генерация цветов для каждого символа строки с помощью ANSI-кодов. Python-библиотека colorama упрощает работу с цветами на разных платформах, но градиент требует вычисления промежуточных оттенков вручную.
Простейший способ – задать начальный и конечный цвет в формате RGB и линейно интерполировать значения между ними для каждого символа текста:
import colorama
colorama.init()
text = "Градиентный текст"
start_color = (255, 0, 0)
end_color = (0, 0, 255)
length = len(text)
for i, char in enumerate(text):
r = start_color[0] + (end_color[0] - start_color[0]) * i // (length-1)
g = start_color[1] + (end_color[1] - start_color[1]) * i // (length-1)
b = start_color[2] + (end_color[2] - start_color[2]) * i // (length-1)
print(f"\033[38;2;{r};{g};{b}m{char}\033[0m", end="")
print()
Формат \033[38;2;R;G;Bm поддерживает TrueColor в терминалах, позволяя задавать точные RGB-значения. Для обратного фона используется 48;2;R;G;B. Интерполяцию можно адаптировать для горизонтального или вертикального градиента, если текст разбивается на строки.
Для упрощения повторного использования создают функции: gradient_text(text, start_color, end_color), которые возвращают готовую строку с ANSI-кодами. При необходимости градиент можно динамически изменять через циклы с плавным переходом цветов.
При использовании консольных библиотек, таких как rich, создание градиента становится короче и более гибким, позволяя задавать несколько цветов и направления градиента без ручного расчёта RGB.
Для изменения цвета текста в Jupyter Notebook можно использовать встроенную функцию HTML из модуля IPython.display. Она позволяет вставлять HTML-код напрямую в ячейки, что дает точный контроль над цветом, шрифтом и размером текста.
Простейший пример окраски текста:
from IPython.display import HTML, display
display(HTML('<span style="color:red">Красный текст</span>'))
Можно комбинировать несколько стилей в одном элементе. Например, задать цвет, размер и жирность текста одновременно:
display(HTML('<span style="color:blue; font-size:18px; font-weight:bold">Синий жирный текст 18px</span>'))
| Цвет | Пример текста |
|---|---|
| Красный | Текст красного цвета |
| Зеленый | Текст зеленого цвета |
| Синий | Текст синего цвета |
| Оранжевый | Текст оранжевого цвета |
colors = ['red', 'green', 'blue', 'orange']
for color in colors:
display(HTML(f'<span style="color:{color}">Текст {color}</span>'))
Библиотека Rich позволяет создавать таблицы с цветным форматированием прямо в терминале. Для работы достаточно установить пакет через pip install rich и использовать класс Table из модуля rich.table.
Пример создания таблицы с цветным выделением заголовков и отдельных ячеек:
from rich.console import Console
from rich.table import Table
console = Console()
table = Table(title="Продажи за март")
table.add_column("Продукт", style="cyan", no_wrap=True)
table.add_column("Количество", justify="right", style="magenta")
table.add_column("Доход", justify="right", style="green")
table.add_row("Кофе", "150", "$450")
table.add_row("Чай", "[bold yellow]200[/bold yellow]", "$300")
table.add_row("Сок", "100", "[red]150[/red]")
console.print(table)
Здесь заголовки колонок получают индивидуальные цвета через параметр style. Внутри таблицы можно применять теги Rich, например [bold yellow] или [red], для акцентирования отдельных значений. Дополнительно можно управлять выравниванием с помощью justify и отключать перенос текста через no_wrap.
Для динамических данных удобно применять условное форматирование. Например, значения ниже определённого порога можно выделять красным, а превышающие – зелёным. Это улучшает читаемость таблиц и помогает быстро визуально идентифицировать ключевые показатели.
Изменение цвета текста в логах с logging и цветными форматами
Модуль logging в Python не поддерживает цвет по умолчанию, но его можно добавить с помощью кастомных форматтеров или сторонних библиотек. Один из способов – создать собственный Formatter, который вставляет ANSI-коды перед сообщением в зависимости от уровня логирования.
Пример простого цветного форматтера:
import logging
class ColorFormatter(logging.Formatter):
COLORS = {
'DEBUG': '\033[94m', # синий
'INFO': '\033[92m', # зелёный
'WARNING': '\033[93m', # жёлтый
'ERROR': '\033[91m', # красный
'CRITICAL': '\033[95m' # фиолетовый
}
RESET = '\033[0m'
pythonCopy codedef format(self, record):
color = self.COLORS.get(record.levelname, self.RESET)
message = super().format(record)
return f"{color}{message}{self.RESET}"
logger = logging.getLogger('color_logger')
handler = logging.StreamHandler()
formatter = ColorFormatter('%(levelname)s: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug("Отладочная информация")
logger.info("Обычное сообщение")
logger.warning("Предупреждение")
logger.error("Ошибка")
logger.critical("Критическая ошибка")
Для более сложного форматирования и поддержки платформ с ограничением ANSI-кодов можно использовать библиотеку colorlog. Она предоставляет ColoredFormatter, где цвет задаётся через словарь log_colors, что упрощает настройку цветов для разных уровней.
Пример с colorlog:
import logging
from colorlog import ColoredFormatter
formatter = ColoredFormatter(
"%(log_color)s%(levelname)s:%(reset)s %(message)s",
log_colors={
'DEBUG': 'blue',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'bold_red'
}
)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger = logging.getLogger('colorlog_example')
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.info("Сообщение INFO")
logger.error("Сообщение ERROR")
Комбинирование цвета и стилей (жирный, курсив) в терминале
В Python для изменения цвета текста и применения стилей используется ANSI-коды. Они позволяют объединять цвет, фон и атрибуты, такие как жирный или курсив. Общий формат кода: \033[атрибут;цвет_текста;цвет_фонаm.
Примеры атрибутов: 0 – сброс, 1 – жирный, 3 – курсив. Цвета текста от 30 до 37 для стандартных и 90–97 для ярких оттенков. Фон задается значениями 40–47 и 100–107 соответственно.
Комбинация жирного красного текста на желтом фоне:
print("\033[1;31;43mПример текста\033[0m")
Пример курсивного синего текста на белом фоне:
print("\033[3;34;47mДругой пример\033[0m")
Можно объединять несколько атрибутов, например жирный и курсив одновременно: print("\033[1;3;32mКомбинированный стиль\033[0m"). Порядок чисел в коде не влияет на результат.
Для упрощения часто используют сторонние библиотеки, такие как colorama или rich, которые обрабатывают ANSI-коды автоматически и повышают читаемость кода. В rich применяется синтаксис: print("[bold red on yellow]Текст[/]"), где стили и цвет объединяются в одном выражении.
Вопрос-ответ:
Как изменить цвет текста в Python с помощью модуля colorama?
Модуль colorama позволяет легко работать с цветным выводом в терминале. Чтобы изменить цвет текста, нужно сначала импортировать модуль и инициализировать его командой init(). Затем можно использовать константы из Fore для цвета текста и Back для фона. Например, print(Fore.RED + ‘Привет’) выведет текст красным цветом. После использования цвета можно сбросить настройки командой Style.RESET_ALL, чтобы следующий текст выводился стандартным цветом.
Можно ли менять цвет текста в Python без сторонних библиотек?
Да, в терминалах, поддерживающих ANSI-коды, цвет текста можно изменять с помощью специальных escape-последовательностей. Например, \033[31m включает красный цвет, а \033[0m сбрасывает форматирование. Пример: print(‘\033[32mЗеленый текст\033[0m’). Такой способ работает на большинстве Unix-подобных систем и в современных версиях Windows, но в старых терминалах Windows может не поддерживаться.
Какие цвета можно использовать при выводе текста через colorama?
В colorama доступны основные цвета: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE. Их можно применять для текста (Fore) и для фона (Back). Также есть стили текста, такие как BRIGHT, DIM и NORMAL, которые меняют насыщенность цвета. Комбинируя цвета и стили, можно создавать разнообразные варианты оформления вывода в терминале.
Как сделать текст в Python одновременно цветным и жирным?
Жирность текста можно установить с помощью ANSI-кодов или стилей colorama. В colorama для этого используют Style.BRIGHT. Например: print(Fore.BLUE + Style.BRIGHT + ‘Синий жирный текст’ + Style.RESET_ALL). После окончания форматирования рекомендуется сбрасывать стиль и цвет, чтобы не повлиять на следующий вывод.
Можно ли использовать цветной текст в графических приложениях на Python?
Цветной текст, созданный через терминальные методы, работает только в консоли. Для графических приложений, например с Tkinter или PyQt, используются другие методы: в Tkinter можно изменить цвет текста виджета Label или Text через параметр fg. В PyQt цвет задается через свойства QColor и методы вроде setStyleSheet. То есть терминальные escape-коды здесь не применимы, нужно использовать средства графического интерфейса.
