Я хочу запустить скрипт Python из другого сценария Python. Я хочу передать переменные, как я бы использовал в командной строке.Запустите скрипт python из другого скрипта python, передав в args
К примеру, я бы запустить свой первый сценарий, который будет перебирать список значений (0,1,2,3) и передавать их на 2-й сценарий script2.py 0
затем script2.py 1
и т.д.
Я нашел SO 1186789, который является аналогичным вопросом, но ответ ars вызывает функцию, где, поскольку я хочу запустить весь скрипт не только как функцию, а ответ balpha вызывает скрипт, но без аргументов. Я изменил это на что-то вроде ниже в качестве теста:
execfile("script2.py 1")
Но он не принимает правильные значения. Когда я распечатываю sys.argv
в файле script2.py, это исходный командный вызов для первого скрипта: «[C: \ script1.py»].
Я не хочу менять исходный скрипт (например, script2. .. ру в моем примере), так как я не являюсь его
Я полагаю, что там должен быть способ сделать это, я просто запутался, как вы это делаете
Вопрос в том, знаете ли вы имя сценария (затем импортируете его) или если вы не знаете имя скрипта во время программирования (тогда используйте subprocess.call). Во втором случае этот вопрос также не будет дублировать. Потому что вопрос не дает понять, что это тоже не очень хорошо. – Trilarion
@Trilarion: неправильно. Вы можете импортировать модуль python, даже если его имя генерируется во время выполнения. – jfs
@ J.F.Sebastian Хорошо. Как побочное замечание: этот способ не очень хорошо освещен каким-либо ответом здесь или в связанном вопросе, за исключением частично в http://stackoverflow.com/a/1186840/1536976. – Trilarion