2013-12-10 41 views
0

我目前正試圖在Python中重寫一些工具,唯一的挑戰是我僅限於Python 2.4。如何從字典中創建文本列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顯示類似的方式中的數據?

回答

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中工作。

+0

這應該工作 – Matthew

0

在Python 2.4中,您可以使用%sN左對齊文本,其中N是您要使用的填充。例如:

print "%s-20" % "foo" 
+0

我相信你的意思是寫'%-20s'。 – John1024