Форматирование вывода списка в Python - PullRequest
2 голосов
/ 03 ноября 2011

У меня есть скрипт 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

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

Висячие отступы возможны при использовании модуля 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
1 голос
/ 03 ноября 2011

pprint - это то, что вы ищете.

Более сложный пример:
pretty-print-lists-in-python

...