2012-11-04 111 views
1

如何將參數傳遞給Python中的系統shell,並將輸出作爲數組或字符串返回?Python 3 os.system從系統shell輸出?

+1

你應該查看['subprocess'](http://docs.python.org/3.3/library/subprocess.html)模塊,特別是['check_output'](http://docs.python.org /3.3/library/subprocess.html#subprocess.check_output)函數。 – Nicolas

回答

4

os.system不是爲了這樣做而設計的; os.popen是。兩者都被subprocess module廢棄,應該用於編寫新代碼。要捕獲shell命令的輸出,您將實例化一個subprocess.Popen對象並調用communicate()來檢索其輸出。

除上述外,the utility function check_output,在Python 2.7新的,是一個插件,更換外殼反引號,即你通過它要執行的命令,並取回輸出作爲一個字符串:

>>> subprocess.check_output(['ls', '-a']) 
'.\n..\n' 
+0

謝謝,大大的幫助 – John