Я пытаюсь запустить команду оболочки из python и получить синтаксические ошибки. Вероятно, это связано с тем, что есть вложенные кавычки, но я не могу понять, как заставить его работать.Подпроцесс Python дает синтаксическую ошибку, но запускается из оболочки
Вот команда:
In [44]: command
Out[44]: '/Applications/itt/idl/bin/idl -e "print, barycorr(2456718.886512, 16.109814, -36.799472, 0, obsname=\'CTIO\')"'
In [45]: print command
/Applications/itt/idl/bin/idl -e "print, barycorr(2456718.886512, 16.109814, -36.799472, 0, obsname='CTIO')"
Когда я запускаю команду, используя любой из двух ниже, я получаю ошибку синтаксиса в IDL:
subprocess.call(command, shell=True)
subprocess.call(shlex.split(command))
Если я запускаю команду (выход из [45]) из командной строки, он отлично работает. Любая идея, что я делаю неправильно?
Спасибо!
Пожалуйста, разместите полный ответ. –