2015-10-11 143 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

“试试这个”答案没有帮助,因为他们没有告诉问题是什么或下次如何解决问题。 –