在 Python 中格式化列表的输出

发布于 2024-12-13 19:42:06 字数 703 浏览 1 评论 0原文

我有一个 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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

断念 2024-12-20 19:42:06

使用 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

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
秋千易 2024-12-20 19:42:06

pprint 就是您要找的。

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

pprint is what you're looking for.

A more complex example:
pretty-print-lists-in-python

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文