#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 через вызов подпроцесса, но важные вещи, которые вы также должны помнить::
-
Вам нужно сообщить SAS, где найти файл AUTOEXEC
-
Вам нужно сообщить 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 другим программистам, которые никогда не имели с ним дела, они смотрят на меня так, как будто я лгу.