Как получить цветной вывод терминала из EDK II Python - PullRequest
0 голосов
/ 08 марта 2019

В оболочке UEFI (которая поддерживает только Python 2.7) я запускаю скрипт python, который одновременно записывает сообщения журнала в файл журнала и на стандартный вывод. Это делается среди прочего

logging.StreamHandler(sys.stdout)

Поскольку я хочу использовать оболочку без головы, я перенаправляю стандартный вывод через UART на терминал (VT100 +). Это делается с помощью (скомпилированной настройки vt100 + по умолчанию):

load TerminalDxe.efi

Теперь я хочу получить цветной вывод на моем терминале (замазке). Поэтому я помещаю среди других строк:

COLOR_WARNING = '\033[93m' 
COLOR_ENDC = '\033[0m'
logging.addLevelName( logging.WARNING, COLOR_WARNING + "WARNUNG" + COLOR_ENDC)
...
LOGGER.warning("")

Но, к сожалению, в моем терминале я вижу только:

^[[93mWARNUNG^[[0m

Как упоминалось ранее, я также записываю сообщения регистрации в файл. Если я распечатаю этот файл на терминал (из оболочки UEFI без python), набрав

type logfile.log

Я получаю ожидаемый результат в моем терминале: enter image description here

Так что последовательность работает нормально. Однако это не так, когда вывод происходит из скрипта Python. Я пробовал это только с помощью print () или sys.stdout.write (), но пока не добился успеха.

...