Как выполнить команду в терминале из скрипта Python?

Я хочу выполнить команду в терминале из скрипта Python.

 ./driver.exe bondville.dat

эта команда печатается в терминале, но она не выполняется.

вот мои действия:

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

он должен выполнить команду, но он просто печатает ее на терминале. При подаче того же самого вручную он выполняется. Как это сделать по сценарию?

3 ответов


на echo терминале Эхо его аргументы, поэтому печать команды на терминал является ожидаемым результатом.

вы пишите echo driver.exe bondville.dat и он работает ваш ?
Если нет, то вам нужно избавиться от эха в последней строке вашего кода:

os.system(command)

можно использовать подпроцесс.check_call модуль для запуска команды, вам не нужно Эхо, чтобы запустить команду:

from subprocess import check_call

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

что эквивалентно запуску ./driver.exe bondville.dat от bash.

если вы хотите получить результат, вы будете использовать check_outout:

from subprocess import check_output

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

в вашем собственном коде вы в основном повторяете строку command фактически не выполняется команда i.e echo "./driver.exe bondville.dat" что бы выход ./driver.exe bondville.dat в командной строке.


попробуйте это:

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