Ответ 1
Вам нужно указать shell=True
, чтобы получить subprocess.call для интерпретации строки.
См. примечание в subprocess.Popen документации конструктора (метод subprocess.call принимает те же аргументы, что и конструктор subprocess.Popen).
Раньше я имел возможность делать subprocess.call(["command","-option value -option value"])
, и он работал бы, чтобы команда правильно работала с вещами в кавычках, но теперь мне нужно изменить команду вызова подпроцесса, чтобы выглядеть так:
subprocess.call(["command","-option","value","-option","value"])
есть ли что-то, что я могу сделать, чтобы заставить его снова работать в python?
os.system("command -option value -option value")
работает так же, как и раньше.
Вам нужно указать shell=True
, чтобы получить subprocess.call для интерпретации строки.
См. примечание в subprocess.Popen документации конструктора (метод subprocess.call принимает те же аргументы, что и конструктор subprocess.Popen).
Избегайте shell=True
, если можете - это риск безопасности. Для этой цели shlex.split хватает:
import subprocess
import shlex
subprocess.call(shlex.split("command -option value -option value"))