Как выполнить команду в терминале из скрипта 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
в командной строке.