Вопрос-Ответ

How do I print colored text to the terminal?

Как мне распечатать цветной текст в терминале?

Как мне вывести цветной текст в терминал на Python?

Переведено автоматически
Ответ 1

Это в некоторой степени зависит от того, на какой платформе вы находитесь. Наиболее распространенный способ сделать это - напечатать escape-последовательности ANSI. Для простого примера, вот некоторый код Python из сценариев сборки Blender:

class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'

Чтобы использовать подобный код, вы можете сделать что-то вроде:

print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)

Или, с помощью Python 3.6+:

print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")

Это будет работать в unix-версиях, включая OS X, Linux и Windows (при условии, что вы используете ANSICON, или в Windows 10, если вы включите эмуляцию VT100). Существуют коды ANSI для настройки цвета, перемещения курсора и многого другого.

Если вы собираетесь разобраться с этим (а похоже, что так оно и есть, если вы пишете игру), вам следует заглянуть в модуль "curses", который обрабатывает множество сложных частей этого за вас. Руководство по Python Curses является хорошим введением.

Если вы не используете расширенный ASCII (т. Е. Не на ПК), вы застряли с символами ASCII ниже 127, и '#' или '@', вероятно, ваш лучший выбор для блока. Если вы можете убедиться, что ваш терминал использует IBM расширенный набор символов ASCII, у вас есть еще много вариантов. Символы 176, 177, 178 и 219 являются "символами блока".

Некоторые современные текстовые программы, такие как "Dwarf Fortress", эмулируют текстовый режим в графическом режиме и используют изображения классического шрифта для ПК. Вы можете найти некоторые из этих растровых изображений, которые вы можете использовать в Dwarf Fortress Wiki см. (пользовательские наборы листов).

В конкурсе демонстраций текстового режима больше ресурсов для создания графики в текстовом режиме.

Ответ 2

Также существует модуль Python termcolor. Использование довольно простое:

from termcolor import colored

print colored('hello', 'red'), colored('world', 'green')

Или на Python 3:

print(colored('hello', 'red'), colored('world', 'green'))

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

Чтобы заставить коды ANSI работать в Windows, сначала запустите

os.system('color')
Ответ 3

Ответ - Colorama для всех кроссплатформенных раскрасок в Python.

Он поддерживает Python 3.5+, а также Python 2.7.

И по состоянию на январь 2023 года он поддерживается.

Пример кода:

from colorama import init as colorama_init
from colorama import Fore
from colorama import Style

colorama_init()

print(f"This is {Fore.GREEN}color{Style.RESET_ALL}!")

Пример скриншота:
пример скриншота

Ответ 4

Выведите строку, которая начинает изменение цвета / стиля, затем строку, а затем завершает изменение цвета / стиля с '\x1b[0m':

print('\x1b[6;30;42m' + 'Success!' + '\x1b[0m')

Успешный пример с зеленым фоном

Получите таблицу параметров формата для текста оболочки с помощью следующего кода:

def print_format_table():
"""
prints table of formatted text format options
"""

for style in range(8):
for fg in range(30,38):
s1 = ''
for bg in range(40,48):
format = ';'.join([str(style), str(fg), str(bg)])
s1 += '\x1b[%sm %s \x1b[0m' % (format, format)
print(s1)
print('\n')

print_format_table()

Пример светлого на темном (завершен)

Введите описание изображения здесь

Пример темного на светлом (частично)

Верхняя часть вывода

Reference: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

python