Reputation: 153
I have a Python script that prints a set of nodes from a list on a unix console by category like so
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
How can I format the output where the nodes are aligned regardless of console size? such as
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
Upvotes: 2
Views: 339
Reputation: 879591
Hanging indents are possible using the textwrap module:
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))
yields
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
Upvotes: 4
Reputation: 3188
pprint is what you're looking for.
A more complex example:
pretty-print-lists-in-python
Upvotes: 1