Цвета в питоне через

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

Читайте также:  Что значит знак python

Подход удобен тем, что можно объявить 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, разработчики добавили в консоль поддержку управляющих кодов. Однако из-за того, что далеко не все пользуются новой ОС, писать консольные приложения с цветным текстом все ещё приходится с помощью дополнительных библиотек.

Для того, чтобы код, написанный с помощью внутренних средств 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, вывели всё в консоль.

Читайте также:  Java reflection change method

Стоит обратить внимание на функцию 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?» это даже может сделать не опытный человек не имея каких-то знаний. Поэтому если вам интересно то продолжайте читать и тогда все поймете.

C помощью встроенных средств языка

На Python с помощью ANSI-код можно делать цвет, фон и т.д. Это очень мощный и удобный инструмент, с его помощью программист может напрямую определять цвет текста. ANSI коды работают на большинстве дистрибутивов Linux, но не поддерживаются консолью операционной системы Windows до Windows 10.

Изменять цвет текста с помощью ANSI кодов можно разными способами, например, использоваться функции или даже написать свой класс-обёртку для ANSI.

Использовать ANSI коды просто, для этого нужно знать базовый синтаксис и сами коды. Разбор на примере кода «\033[31m\033[43m»:

  • «033[» — обозначение того, что дальше идет какой-то управляющий цветом код.
  • 37m — это код цвета а именно красный.
  • 43m — это код цвет фона для текста.

Именно через этот ANSI-код мы можем делать текст разноцветным, не забывайте ставить «» иначе будет ошибка.

Давайте сделаем вывод текста на консоле через функции.

def out_red(text): print("\033[34m<>".format(text)) out_red("ПРИВЕТ")

Через print() мы задали цвет текста «ПРИВЕТ» синим цветом. Также можно добавить фон и стиль текста все в одну строку.

print("\033[3m\033[33m\033[41m<>\033[0m".format("Htua_0111100000"))
  • \033[3m — отвечает за стилб текста в данном случае это курсив.
  • \033[33m — отвечает за цвет текста.
  • \033[41m — отвечает за цвет фона.
  • <> — заменит на «Htua_0111100000»
  • \033[0m — отвечает за сброс к начальным значениям.
Читайте также:  Visual studio emmet html

Вобщем вот целая таблица с кодами цвета, фона и стилей.

Сброс к начальным значениям

Смена цвета фона с цветом текста

Цветной вывод текста в Python через библиотеку Colorama

Этой библиотекой тоже можно сделать цветной текст. Достаточно просто знать код и все. Для того чтобы начать работать нужно просто установить библиотеку pip install colorama потом можно начать работать с этой библиотекой. Создайте файл colorama.py и можно приступать к написанию кода.

from colorama import init, Fore from colorama import Back from colorama import Style init(autoreset=True) print(Fore.BLUE + 'some red text') print(Back.WHITE + 'and with a green background') print(Style.BRIGHT + 'and in dim text') print(Style.RESET_ALL) print('back to normal now')

Вывод текста через Colorama

  1. Cначала импортируем init, Back, Style то есть все необходимые нам функции для вывода текста на консоль.
  2. Стоит обратить внимание на функцию init . Если её забыть запустить, то не будет поддерживаться вывод на Windows 10.
  3. print(Fore.BLUE + ‘some red text’) — это задает цвет текста также вы можете поменять на красный (RED) или зеленный (GREEN) и т.д.
  4. print(Back.WHITE + ‘and with a green background’) — это задает фон текста
  5. print(Style.BRIGHT + ‘and in dim text’) — стиль текста
  6. print(Style.RESET_ALL) — сброс всех стилей
  7. print(‘back to normal now’) — обычный текст

Цветной текст через библиотеку termcolor

Это тоже вторая библиотека отвечающее за цвет фон и так далее. pip install termcolor

from termcolor import colored, cprint print(colored('Привет мир!', 'red', attrs=['underline'])) print('Привет, я люблю тебя!') cprint('Вывод с помощью cprint', 'green', 'on_blue')

Импортируем colored и cprint, и пишем print(colored(‘Привет мир!’, ‘red’, attrs=[‘underline’])) тут вобще намного легче чем предыдущая attrs = [‘underline’] задает стиль текста. Следущее сpint(‘Вывод с помощью cprint’, ‘green’, ‘on_blue’) — это функция отвечает за цвет текста и фон. сpint(‘Ваш любимый текст’, ‘цвет текста’, ‘фон текста’)

Вывод

В общем, благодаря ANSI-кодом, библиотека colorama и termcolor можно создавать ваши любимые тексты, кстати можно с этой темой можно создавать мини викторины или что то другое. Я надеюсь на то что вам понравилось эта статья и надеюсь в будущем я продолжу писать все больше и больше статей на разные темы. Спасибо за внимание!

Источник

Оцените статью