Полужирное форматирование в консоли Python

Я определил список в коде 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 ответа

Вам также необходимо указать 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))

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

for each in list:
    print(each)

Следующий вывод

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

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

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

for i lst:
    print i

или создайте уникальную строку с помощью join:

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

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

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

Другие вопросы по тегам