2

我有一个 Python 脚本,它按类别从 unix 控制台上的列表中打印一组节点,如下所示

   
node_name: 1) node_mgt 2) node103 3) node106 4) node107 5) node109 6) node110 7) node115 8) node116 9) node117 10) node120 11) node121 12) node122  
node_sub1: 170) node126 171) node210 172) node304 173) node413 174) node425 175) node517 176) node609

无论控制台大小如何,如何格式化节点对齐的输出?如

node_name: 1) node_mgt  2) node103  3) node106  4) node107  5) node109  6) node110 
           7) node115  8) node116  9) node117  10) node120  11) node121  12) node122        
node_sub1: 170) node126  171) node210  172) node304  173) node413  174) node425 
           175) node517  176) node609
4

2 回答 2

4

使用textwrap 模块可以悬挂缩进:

import textwrap

lines=['node_name: 1) node_mgt  2) node103  3) node106  4) node107  5) node109  6) node110  7) node115  8) node116  9) node117  10) node120  11) node121  12) node122  ',
'node_sub1: 170) node126  171) node210  172) node304  173) node413  174) node425  175) node517  176) node609']
for line in lines:
    print(textwrap.fill(line,initial_indent='',subsequent_indent=' '*11,width=84))

产量

node_name: 1) node_mgt  2) node103  3) node106  4) node107  5) node109  6) node110
           7) node115  8) node116  9) node117  10) node120  11) node121  12) node122
node_sub1: 170) node126  171) node210  172) node304  173) node413  174) node425
           175) node517  176) node609
于 2011-11-03T19:31:02.980 回答
1

pprint是您正在寻找的。

一个更复杂的例子:
pretty-print-lists-in-python

于 2011-11-03T19:10:40.970 回答