如何从Python脚本在终端中执行命令?

时间:2015-10-11 13:34:12

标签: python shell python-2.7 terminal ubuntu-14.04

我想从Python脚本在终端中执行命令。

 ./driver.exe bondville.dat

此命令将在终端中打印,但无法执行。

以下是我的步骤:

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

它应该执行命令,但它只是在终端上打印它。手动送料时,它会执行。我如何从脚本中执行此操作?

3 个答案:

答案 0 :(得分:9)

echo终端命令回显其参数,因此将命令打印到终端是预期的结果。

您是否在键入echo driver.exe bondville.dat,是否正在运行driver.exe计划? 如果没有,那么你需要摆脱代码最后一行的回声:

os.system(command)

答案 1 :(得分: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",它会在你的shell中输出./driver.exe bondville.dat

答案 2 :(得分:2)

试试这个:

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