Запуск сценария, который вызывает другой сценарий в качестве аргумента, который в свою очередь имеет аргументы - PullRequest
1 голос
/ 27 июля 2011

Я ищу наиболее эффективный / простой способ запуска сценария (назовем его script1) с аргументами, которые:

  1. вызывают один (только один) из нескольких других сценариев (в качестве аргумента для script1), который в свою очередь:
  2. имеет аргументы, которые выдаются при запуске script1 и передаются тому сценарию, который запускается на основе аргумента в script1 ...

Например, я хотел бы запустить script1, у которого есть аргументы для вызова script2, у которого есть аргументы a и b:

script1.py (script2 ab)

I 'Я изучал функции и читал некоторых людей, предлагающих лямбду, но я довольно новичок и хочу учиться и понимать, а не просто получить ответ, которого я не понимаю ...

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

Заранее спасибо !!

1 Ответ

2 голосов
/ 27 июля 2011

Если вы хотите, чтобы ваш скрипт (одна программа Python, назовем его script1.py) вызывал другой скрипт (другая программа Python) с заданными аргументами, вы можете написать script1.py как:

import subprocess, sys

subprocess.call(sys.argv[1:])

sys.argv - это список, который содержит название вашей программы (используйте print sys.argv[0] и убедитесь сами), а после этого все аргументы, переданные вашей программе.

sys.argv[1:] означает: содержимое списка sys.argv, начиная со второго элемента (с индексом 1) и заканчивая списком.

subprocess.call вызывает другую программу и принимает список, содержащийпрограмма для выполнения и все ее аргументы.

...