Пространства в подпроцессе python.Popen()

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

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

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

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

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

1 ответ

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

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

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

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

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

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

licensed under cc by-sa 3.0 with attribution.