Python控制台中的粗体格式

时间:2018-05-22 05:12:11

标签: python console ansi output-formatting

我在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 {/ 1}}?

3 个答案:

答案 0 :(得分:5)

您还需要指定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))

答案 1 :(得分:1)

尝试打印如下

RESTFUL_APP_DSN

以下是输出 enter image description here

答案 2 :(得分:0)

Kalyan提供了一种可行的方法,但没有解释原因。

当要求Python打印列表时,它将输出列表标记的开始和结束([])以及列表中所有项目的表示。对于字符串,这意味着将转义不可打印的字符。

除了单独打印项目

之外,你几乎无能为力
for i lst:
    print i

或使用join构建一个唯一的字符串:

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

顺便说一句,正如Austin '\x01b[1m所解释的那样,是一个要求ANSI兼容终端以粗体模式传递的序列,因此您必须一次恢复到'\x01b[0m的正常模式。

请记住:ANSI在Linux终端仿真中很常见,但它仍远未普及......只是在使用它之前尝试使用export TERM=tvi950(以及google for vt100和tvi950以了解更多信息)。