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

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

  • автор:

How to Color Terminal Text in Python

If you’ve ever worked with some fany command-line tools, you might have seen some colored text in there — maybe for a warning or error message or somesuch. It certainly can help in reading comprehension in some situations, so how can we do it in Python?

Specifically, Python 3.8.5 on a Windows 10 machine.

Coloring Terminal Text in Python

The library that is recommended (especially for cross-platform use) is Colorama. This StackOverflow answer suggested its use.

Installing Colorama

Colorama didn’t come pre-installed, but pip saved me:

Coloring ‘print’ Statements Example

This Python 3 snippet will color text for you:

And it produces this output:

Eh… trust me. It’s colored. I cannot figure out how to get that to come through here, but it is I swear!

Coloring ‘input’ Statements Example

If you do something like this:

You do NOT get a red colored question prompt. You get gobbledy-gook at the front and end of the line, but no colors.

The question is, how do you fix this?

Someone suggests this fix:

Sadly, this does not work.

This SO answer suggests a truly confounding fix:

I had to install sphinx with pip to even get it to run. It installed a LOT of stuff. Once that was done, the result was…

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

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

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

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

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

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

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

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

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

Она выглядит вот так:

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

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

Цветной вывод текста в Python

Всем привет сегодня я хотел рассказать вам «Как сделать цветной вывод текста в Python?» это даже может сделать не опытный человек не имея каких-то знаний. Поэтому если вам интересно то продолжайте читать и тогда все поймете.

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

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

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

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

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

37m — это код цвета а именно красный.

43m — это код цвет фона для текста.

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

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

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

\033[3m — отвечает за стилб текста в данном случае это курсив.

How do I print colored text to the terminal?

How do I output colored text to the terminal in Python?

Mateen Ulhaq's user avatar

65 Answers 65

This somewhat depends on what platform you are on. The most common way to do this is by printing ANSI escape sequences. For a simple example, here’s some Python code from the Blender build scripts:

To use code like this, you can do something like:

Or, with Python 3.6+:

This will work on unixes including OS X, Linux and Windows (provided you use ANSICON, or in Windows 10 provided you enable VT100 emulation). There are ANSI codes for setting the color, moving the cursor, and more.

If you are going to get complicated with this (and it sounds like you are if you are writing a game), you should look into the "curses" module, which handles a lot of the complicated parts of this for you. The Python Curses HowTO is a good introduction.

If you are not using extended ASCII (i.e., not on a PC), you are stuck with the ASCII characters below 127, and ‘#’ or ‘@’ is probably your best bet for a block. If you can ensure your terminal is using a IBM extended ASCII character set, you have many more options. Characters 176, 177, 178 and 219 are the "block characters".

Some modern text-based programs, such as "Dwarf Fortress", emulate text mode in a graphical mode, and use images of the classic PC font. You can find some of these bitmaps that you can use on the Dwarf Fortress Wiki see (user-made tilesets).

The Text Mode Demo Contest has more resources for doing graphics in text mode.

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

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