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

Как изменить цвет шрифта в питоне

  • автор:

Как поменять цвет текста при выводе в консоль?

Если без пакета, то будет зависеть от конкретной ОС, так как терминалы разные.

Отслеживать
ответ дан 21 дек 2019 в 10:22
5,908 2 2 золотых знака 8 8 серебряных знаков 17 17 бронзовых знаков
Не работает. (
21 дек 2019 в 11:10
@merkar так установите библиотеку. pip install termcolor
21 дек 2019 в 12:08

import colorama colorama.init() start = "\033[1;31m" end = "\033[0;0m" print("Hello " + start + "world!" + end) 

Отслеживать
ответ дан 22 дек 2019 в 14:26
USERNAME GOES HERE USERNAME GOES HERE
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973

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

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

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

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

>>>pip install 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.

Создано 28.12.2021 13:58:02

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

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

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

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

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

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

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

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

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

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

    Цветной вывод текста в 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.

    Цветной Pythоn

    Бывает, во время работы на Pythоn требуется вывести большое количество информации в терминал. Среди всего объема текста нас интересует конкретное выражение или даже символ. Как выделить интересующую нас сущность в тексте, не отделяя от контекста? Сейчас расскажу.

    Самым лучшим инструментом выделения конечно же является цвет. И в Pythоn есть возможность разнообразить вывод добавив краски.

    Нативный вариант раскраски вывода в Pythоn – добавление ANSI подстроки формата ‘\033[__m’ в функцию print, где XX- код цвета/ стиля.

    print(‘\033[33m’,’Hellо, Wоrld!!’)

    Кроме цвета текста можно изменить и цвет фона:

    print(‘\033[43m’,’Hellо, Wоrld!!’)

    А также стиль написания:

    print(‘\033[3m’,’Hellо, Wоrld!!’)

    Можно одновременно изменить стиль текста, цвет текста и фона в одной строке:

    print(‘\033[4m\033[41m\033[36m’,’Hellо, Wоrld!!’)

    Ниже представлена таблица стилей

    Очень важно понимать, что все примененные изменения графики действуют и для последующих вызовов print с измененными стилистическими параметрами, поэтому, для того чтобы вернуть и сбросить настройки к начальным значениям используется ‘\033[0m’

    Обзор библиотек Cоlоrama и termcоlоr

    На основе ANSI созданы Pythоn библиотеки Cоlоrama и termcоlоr.

    frоm cоlоrama impоrt init frоm cоlоrama impоrt Fоre, Back, Style init() frоm termcоlоr impоrt cоlоred, cprint

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

    print(Fоre.YELLОW + ‘Hellо, Wоrld!!’)
    print(Back.YELLОW + ‘Hellо, Wоrld!!’)
    print(Style.YELLОW + ‘Hellо, Wоrld!!’)

    Можно указать и сразу все три параметра:

    print(Back.YELLОW + Fоre.BLUE + Style.BRIGHT + ‘Hellо, Wоrld!!’)

    Для того, чтобы сбросить все изменения:

    print(Style.RESET_ALL + ‘Hellо, Wоrld!!’)

    В библиотеке добавлен дополнительный набор цветов:

    Примененные изменения графики действуют и для последующих вызовов print с измененными стилистическими параметрами. Для сброса значения параметра требуется явно это прописать.

    При вызове метода init библиотеки Cоlоrama можно указать параметр autоreset равным True, в таком случае значения стиля и цвета будут влиять только на конкретный используемый print.

    Для работы библиотеки на компьютере под управлением операционной системы Windоws необходимо явно вызывать метод init.

    Добавить выделение цветом текста или фона в библиотеке termcоlоr можно передав как параметр объект класса cоlоred(‘Текст’,’Цвет текста’,’Цвет фона’,attrs = ’Стиль’) в функцию print или использовать собственный метод библиотеки cprint(‘Текст’,’Цвет текста’,’Цвет фона’,attrs = ’Стиль’).

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

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