Я пытаюсь вызвать скрипт sas, используя python и подпроцесс. Это мой код:
proc = Popen(self.cmd, shell=True, stdout=PIPE, stderr=STDOUT)
proc.wait()
standard_output, standard_error = proc.communicate()
if proc.returncode == 0:
log.info("Successfully executed execute_shell_command")
elif proc.returncode == 1:
self.status_message = "return code 1 from" + " ".join(self.cmd) + "error msg: " + str(standard_error)
self.flag = 1
raise ValueError(self.status_message)
elif proc.returncode > 1:
self.status_message = "Error occurred while executing command on shell :" + " ".join(self.cmd) + ' ' + standard_error
self.flag = 1
raise ValueError(self.status_message)
self.cmd = [sas_path,'-config',sas_config_path,'-sysin',sas_code_path]
Я не включаю autoexec_path для SAS, потому что я не нашел ни одного файла autoexec. если у меня есть файл autoexec, то
self.cmd = [sas_path,'-config',sas_config_path,'-autoexec',autoexec_path,'-sysin',sas_code_path]
Проблема в том, что код SAS выполняется успешно, но proc.returncode
не равен 0. Поэтому мой код на python не знает, что код был успешно выполнен.
Есть что-то, что я делаю не так?