Я пытаюсь запустить скрипт из питона скрипт, используя следующее:Run сценарий оболочки из питона
from subprocess import call
call(['bash run.sh'])
Это дает мне ошибку, но я могу успешно запускать другие команды, такие как:
call(['ls'])
Я пытаюсь запустить скрипт из питона скрипт, используя следующее:Run сценарий оболочки из питона
from subprocess import call
call(['bash run.sh'])
Это дает мне ошибку, но я могу успешно запускать другие команды, такие как:
call(['ls'])
Вы должны разделяющие аргументы:
call(['bash', 'run.sh'])
call(['ls','-l'])
Есть ли способ запускать скрипты .sh в Python в Windows? – Royi
from subprocess import call
import shlex
call(shlex.split('bash run.sh'))
Вы хотите правильно обозначить свои аргументы команды. shlex.split()
сделает это за вас.
Источник: https://docs.python.org/2/library/subprocess.html#popen-constructor
Примечание shlex.split() может быть полезны при определении правильного лексемизации для аргументов, особенно в сложных случаях:
Когда вы звоните call()
с list
, он ожидает, что каждый элемент этот список соответствует аргументу командной строки. В этом случае он ищет bash run.sh
как исполняемый с пробелами и все как одна строка.
Попробуйте один из них:
call("bash run.sh".split())
call(["bash", "run.sh"])
возможно дубликат [Вызов внешней команды в Python] (http://stackoverflow.com/questions/89228/calling-an-external-command-in-python) – kenorb