我試圖從python腳本運行OpenStack API。我用subprocess模塊來做到這一點。在python腳本中運行命令並將結果存儲在csv文件或元組中
output = subprocess.check_output('nova-manage vm list',shell=True,)
print output
「新星管理的虛擬機列表」 出具有作爲「實例,節點,類型,狀態,啓動,圖像,內核,RAMDISK,項目,用戶區,索引列的表。
instance node type state launched image kernel ramdisk project user zone index
ubuntu12_1 compute1 m1.small active 2014-03-25 07:57:51 946fbcc5-03c3-48a1-9ef9-f6d6362c6152 53963e60e44c4c54b7507e81cf11ef2c f47f5c0a54374a4b8aa78e5349246b0f None 0
ubuntu12_2 compute1 m1.small active 2014-03-25 07:59:03 946fbcc5-03c3-48a1-9ef9-f6d6362c6152 53963e60e44c4c54b7507e81cf11ef2c f47f5c0a54374a4b8aa78e5349246b0f None 0
ubuntu12_3 compute2 m1.small active 2014-03-26 07:27:16 946fbcc5-03c3-48a1-9ef9-f6d6362c6152 53963e60e44c4c54b7507e81cf11ef2c f47f5c0a54374a4b8aa78e5349246b0f None 0
ubuntu12_4 compute2 m1.small active 2014-03-26 07:46:56 946fbcc5-03c3-48a1-9ef9-f6d6362c6152 53963e60e44c4c54b7507e81cf11ef2c f47f5c0a54374a4b8aa78e5349246b0f nova
以上就是運行「新星管理的虛擬機列表」命令輸出的示例例子。
我需要檢查只輸出的前4列,我應該如何只得到第4列出來的完整的表格?我應該如何將這4列的值存儲在csv文件中並訪問它?
我是Python腳本編程的初學者,知識很少,所以請在我的問題上提出一些看法。
謝謝,
你能否提供關於輸出更多的細節?它看起來怎樣?可能還有其他兩個選項:直接使用[OpenStack-API綁定](http://www.ibm.com/developerworks/cloud/library/cl-openstack-pythonapis/index.html?ca=drs-) (避免子進程的東西)或使用sed(或其他unix命令行工具)處理「nova-manage」輸出 – dorvak
感謝dorvak,您提供的鏈接非常有幫助。 – Veena