我想从Python脚本在终端中执行命令。
./driver.exe bondville.dat
此命令将在终端中打印,但无法执行。
以下是我的步骤:
echo = "echo"
command="./driver.exe"+" "+"bondville.dat"
os.system(echo + " " + command)
它应该执行命令,但它只是在终端上打印它。手动送料时,它会执行。我如何从脚本中执行此操作?
答案 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")