Полужирное форматирование в консоли 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))
Калян дал возможный путь, но не смог объяснить почему.
Когда попросить 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, чтобы понять больше)...