Полужирное форматирование в консоли Python - PullRequest
0 голосов
/ 22 мая 2018

Я определил список в коде Python.

list = ['kumar','satheesh','rajan']    
BOLD = '\033[1m'

for i, item in enumerate(list):
   list[i] = BOLD + item

print (list)

Но я получаю output as ['\x1b[1mfsdfs', '\x1b[1mfsdfsd', '\x1b[1mgdfdf']

Но требуемый вывод - ['kumar','satheesh','rajan']

Как format list elements в bold с использованием python?

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Вам также необходимо указать END = '\033[0m':

list = ['kumar','satheesh','rajan']

BOLD = '\033[1m'
END = '\033[0m'

for each in list:
    print('{}{}{}'.format(BOLD, each, END))

Чтобы сделать сам список жирным, как ['kumar', 'satheesh', 'rajan'] :

print('{}{}{}'.format(BOLD, list, END))
0 голосов
/ 22 мая 2018

Калян дал возможный способ, но не смог объяснить, почему.

Когда попросит Python напечатать список, он выведет начало и конец маркеров списка ([]) и представление всех пунктов списка.Для строки это означает, что непечатаемые символы будут экранированы.

Вы мало что можете сделать, кроме как отдельно печатать элементы

for i lst:
    print i

или создать уникальную строку с объединением:

string_to_output = '[' + ', '.join(lst) + ']'
print(string_to_output)

Кстати, как пояснил Остин, '\x01b[1m - это последовательность запросов к ANSI-совместимому терминалу для прохождения в полужирном режиме, поэтому вы должны одновременно вернуться в нормальный режим с помощью '\x01b[0m.

И помните: ANSI распространен в эмуляции терминала Linux, но все еще далек от универсальности ... Просто попробуйте использовать export TERM=tvi950 перед его использованием (и google для vt100 и tvi950, чтобы понять больше) ...

0 голосов
/ 22 мая 2018

попробуйте выполнить печать следующим образом

for each in list:
    print(each)

следующим является вывод enter image description here

...