Как мне вывести цветной текст в терминал на Python?
Переведено автоматически
Ответ 1
Это в некоторой степени зависит от того, на какой платформе вы находитесь. Наиболее распространенный способ сделать это - напечатать escape-последовательности ANSI. Для простого примера, вот некоторый код Python из сценариев сборки Blender:
Чтобы использовать подобный код, вы можете сделать что-то вроде:
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 см. (пользовательские наборы листов).
Однако он может быть недостаточно сложным для программирования игр и "цветных блоков", которые вы хотите создать...
Чтобы заставить коды 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')
Получите таблицу параметров формата для текста оболочки с помощью следующего кода:
defprint_format_table(): """ prints table of formatted text format options """ for style inrange(8): for fg inrange(30,38): s1 = '' for bg inrange(40,48): format = ';'.join([str(style), str(fg), str(bg)]) s1 += '\x1b[%sm %s \x1b[0m' % (format, format) print(s1) print('\n')