2013-10-08 84 views
23

在python中,我可以使用os或subprocess運行一些系統命令。問題是我無法以字符串形式獲取輸出。例如:在Python中,獲取系統命令的輸出作爲字符串

>>> tmp = os.system("ls") 
file1 file2 
>>> tmp 
0 

我有子的舊版本不具備的功能CHECK_OUT,我寧願不要求更新模塊解決方案,因爲我的代碼將在一臺服務器上運行我沒有完整的管理權限。

這個問題似乎微不足道,但我無法找到一個平凡解

+0

你需要'popen' PIPE,系統可能會返回進程終止狀態 –

+0

@GrijeshChauhan我也試過,但無法使其工作。你能舉一個例子嗎? – S4M

+0

Python版本是什麼? – codeape

回答

62

使用os.popen()

tmp = os.popen("ls").read() 

較新的方式(> 2.6蟒)要做到這一點是使用subprocess

proc = subprocess.Popen('ls', stdout=subprocess.PIPE) 
tmp = proc.stdout.read() 
+0

使用子進程的示例將會有所幫助:) –

+0

添加子進程的示例 –

+0

tmp = os.popen(「ls」)。read()很好。我有python 2.6。 – S4M

相關問題