2014-02-04 6 views
0

Я пытаюсь вызвать внешний скрипт perl в моем скрипте python. Я использовал subprocess.Popen(). Если запустить его, какspace in python subprocess.Popen() arguments

subprocess.Popen([mybinary, '-arg1 argv1', '-arg2 argv2'])

аргументы не передаются в mybinary. Но если я отделить аргументы от значений, то он работает правильно:

subprocess.Popen([mybinary, '-arg1', 'argv1', '-arg2', 'argv2'])

Почему это так? args должна быть строкой или списком. Если я конкатенирую mybinary, и аргументы в одну строку для Popen(), Popen() тоже не работают. Я подозреваю, что это относится к ключевым словам (** kwargs). Но скрипт, вызванный, является внешним. Я не вижу причины.

ответ

0

Я пытаюсь вызвать внешний скрипт perl в моем сценарии python. Я использовал подпроцесс.Popen(). Если запустить его как

subprocess.Popen([mybinary, '-arg1 argv1', '-arg2 argv2']) 

аргументы не отправляются в mybinary.

Я сомневаюсь, что. Я скорее думаю, что они идут туда ненадлежащим образом.

Сценарий ожидает варианты и их значения как два отдельных аргумента. Если они объединены, это не сработает.

Аргументы передаются по форме и рассчитываются точно так же, как вы их даете в списке.