Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python调用SAS脚本-子流程_Python_Sas_Subprocess_Popen - Fatal编程技术网

使用python调用SAS脚本-子流程

使用python调用SAS脚本-子流程,python,sas,subprocess,popen,Python,Sas,Subprocess,Popen,我正在尝试使用python和子流程调用sas脚本。这是我的代码: proc=Popen(self.cmd,shell=True,stdout=PIPE,stderr=stdout) 进程等待() 标准输出,标准错误=proc.communicate() 如果proc.returncode==0: log.info(“成功执行\u shell\u命令”) elif proc.returncode==1: self.status_message=“从“+”返回代码1。join(self.cmd)+”

我正在尝试使用python和子流程调用sas脚本。这是我的代码:

proc=Popen(self.cmd,shell=True,stdout=PIPE,stderr=stdout)
进程等待()
标准输出,标准错误=proc.communicate()
如果proc.returncode==0:
log.info(“成功执行\u shell\u命令”)
elif proc.returncode==1:
self.status_message=“从“+”返回代码1。join(self.cmd)+”error msg:“+str(标准_错误)
self.flag=1
提升值错误(自我状态信息)
elif proc.returncode>1:
self.status\u message=“在shell上执行命令时出错:“+”.join(self.cmd)+''+标准\u错误
self.flag=1
提升值错误(自我状态信息)
self.cmd=[sas_path,'-config',sas_config_path,'-sysin',sas_code_path]
我没有包括SAS的autoexec_路径,因为我没有找到任何autoexec文件。 如果我有autoexec文件

self.cmd=[sas_path,'-config',sas_config_path,'-autoexec',autoexec_path,'-sysin',sas_code_path]
问题是SAS代码执行成功,但
proc.returncode
不等于0。因此,我的python代码不知道代码是否成功运行。

我做错了什么吗?

日志中可能有警告

从文件来看

返回代码和完成状态

完成SAS作业的返回代码在Windows批处理变量ERRORLEVEL中返回

ERRORLEVEL变量的值


你能设置-log选项并检查有什么问题吗?我的sas代码发出警告,这就是返回代码为1的原因。谢谢Richard。我的SAS代码日志有警告,这就是为什么我得到返回代码1。这很有帮助。很高兴听到这个消息,欢迎来到SO。确保对你的问题和你认为有帮助的其他问题的答案进行标记。