2015-10-11 192 views
7

我想在Python腳本中執行終端中的命令。如何從Python腳本執行終端中的命令?

./driver.exe bondville.dat 

該命令在終端打印,但未能執行。

這裏是我的步驟:

echo = "echo" 
command="./driver.exe"+" "+"bondville.dat" 
os.system(echo + " " + command) 

其應該執行的命令,但它只是在打印終端上。當手動提供相同的東西時,它正在執行。我如何從腳本執行此操作?

+2

使用子模塊 –

+0

@PadraicCunningham我是新來的蟒蛇,這子模塊似乎很難,我來處理。如何使用這個? – Mario

+0

你想存儲輸出還是隻運行命令? –

回答

9

echo終端命令回聲它的參數,所以打印命令到終端是預期的結果。

您是否正在輸入echo driver.exe bondville.dat並運行您的driver.exe程序?
如果沒有,那麼你需要在你的代碼的最後一行擺脫回聲:

os.system(command) 
+0

感謝它工作! – Mario

2

可以使用subprocess.check_call模塊運行命令,你不需要爲了呼應運行命令:

from subprocess import check_call 

check_call(["./driver.exe", "bondville.dat"]) 

這相當於從bash運行./driver.exe bondville.dat

如果你想獲得你可以使用check_outout輸出:

from subprocess import check_output 

out = check_output(["./driver.exe", "bondville.dat"]) 

在自己的代碼,你基本上呼應串command沒有實際運行該命令即echo "./driver.exe bondville.dat"這將輸出./driver.exe bondville.dat在你的shell。

2

試試這個:

import subprocess 
subprocess.call("./driver.exe bondville.dat") 
+1

「試試這個」答案沒有幫助,因爲他們沒有告訴問題是什麼或下次如何解決問題。 –