我正在尝试在 python 中创建一个漂亮的列列表,以便与我创建的命令行管理工具一起使用。
基本上,我想要一个类似的列表:
[['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]
变成:
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
使用普通制表符在这里不起作用,因为我不知道每行中最长的数据。
这与 Linux 中的“column -t”行为相同。
$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c"
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c" | column -t
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
我已经查找了各种 python 库来执行此操作,但找不到任何有用的东西。
从 Python 2.6+ 开始,您可以使用格式字符串 http://docs.python.org/2.7/library/string.html#format-specification-mini-language通过以下方式将列设置为至少 20 个字符并将文本右对齐。
table_data = [
['a', 'b', 'c'],
['aaaaaaaaaa', 'b', 'c'],
['a', 'bbbbbbbbbb', 'c']
]
for row in table_data:
print("{: >20} {: >20} {: >20}".format(*row))
Output:
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)