Как мне вызвать сценарий sas на python?

#python #sas

#python #sas

Вопрос:

Я могу открыть экземпляр sas, но я не уверен, как заставить его запустить определенный скрипт sas.

Я использую следующий код для запуска sas:

 import subprocess
subprocess.call(['C:Program FilesSASSASFoundation9.2sas.exe'])
  

Комментарии:

1. Сработало ли мое решение? Смогли ли вы вызвать SAS по мере необходимости?

2. @Maurice Да, большое вам спасибо! Я могу подтвердить, что для этого требуется параметр -sysin . Кроме того, мне пришлось использовать двойные обратные косые черты ‘\’ вместо одиночных во всех моих переменных path, чтобы заставить это работать.

3. Отлично! Я рад, что вы смогли заставить его работать на вас. Удачи с SAS!

Ответ №1:

Вы можете передать дополнительные параметры в SAS через вызов подпроцесса, но важные вещи, которые вы также должны помнить::

  1. Вам нужно сообщить SAS, где найти файл AUTOEXEC

  2. Вам нужно сообщить SAS, где найти файл конфигурации

У меня есть сценарий оболочки, который я использую для вызова сценариев SAS, и вызов выглядит так:

sas -config $SAS_CONFIG -autoexec $SAS_AUTOEXEC $SAS_CODE/$1

Итак, ваш вызов должен выглядеть так: subprocess.call(['C:Program FilesSASSASFoundation9.2sas.exe', '-config', config_path, '-autoexec', autoexec_path, '-sysin', sas_script_path])

Вам нужно будет настроить переменные для путей, указанных выше.

Удачи!

Комментарии:

1. Обратите внимание, что если вы запускаете это в Unix, вышеупомянутое будет работать, но если вы запускаете его под Windows, вам нужно -sysin перед sas_script_path .

2. Хороший момент. Я не делал этого в Windows вечно. Я изменю свой ответ, чтобы включить sysin.

3. Я думаю, что unix специально не использует его, хотя на данный момент я не могу это проверить. SAS — это странно.

4. Я согласен. Это странная птица. Когда я описываю SAS другим программистам, которые никогда не имели с ним дела, они смотрят на меня так, как будто я лгу.