如何从字典Python 2.4创建文本列

时间:2013-12-10 03:44:52

标签: python bash dictionary

我目前正在尝试在python中重写一些工具,唯一的挑战是我只限于Python 2.4。

bash版本的当前输出如下所示:

Host           Active VMs     SW            Ver       Processor        Cores     Mhz          Tot Mem     Free Mem     Network
cloudmatt1     1              XenServer     1.8.0     GenuineIntel     2         2660.040     5.45G       3.57G        openvswitch     
cloudmatt2     3              XenServer     1.8.0     GenuineIntel     2         2660.046     5.45G       1.55G        openvswitch  

这是我的示例词典:

{'d50787a5-9187-4486-9d36-e8287701bcbd': {'UUID': 'd50787a5-9187-4486-9d36-e8287701bcbd', 'Network-Backend': 'openvswitch', 'Platform-Version': '1.8.0', 'Host-CPUs': 2, 'Name-label': 'cloudmatt1', 'Resident-VMs': 2}, 'e9e54df0-ab87-4e68-a604-2e1821ce2da9': {'UUID': 'e9e54df0-ab87-4e68-a604-2e1821ce2da9', 'Network-Backend': 'openvswitch', 'Platform-Version': '1.8.0', 'Host-CPUs': 2, 'Name-label': 'cloudmatt2', 'Resident-VMs': 4}}

如何以与Python 2.4类似的方式显示数据?

2 个答案:

答案 0 :(得分:0)

使用Python 2.4,您可以使用%sN左对齐文本,其中N是您要使用的填充。 e.g:

print "%s-20" % "foo"

答案 1 :(得分:0)

看起来你有一些左对齐列,每列都有一个特定的大小。您可以从Python的字符串格式中获得类似的效果。示例:

>>> print "%-10s %-3s %-10s" % ('foo', 2, 'bar')
foo        2   bar

您可以使用星号来判断列的动态范围:

>>> print "%-*s %-*s %-*s" % (10, 'foo', 3, 2, 10, 'bar')
foo        2   bar

在这种情况下,提前确定列的宽度可能更容易,但您也可以检查每行的值的长度,以确定列的宽度。

注意:在2.5中检查过这个,但这些也可能在2.4中有效。