将SAS“返回代码” Aka%SYSRC返回到父Python脚本

我在检查python子进程中的错误时遇到了麻烦。子进程是一个sas程序。有巫师可以分享魔法吗?我想避免在sas日志中搜索字符串,而是依靠返回码。

我在AIX服务器上安装了python 2.7。

我可以使用python的子流程模块以多种方式调用sas程序。我已经使用check_output模块,Popen模块甚至只是调用对象成功调用了一个程序。但是,对于我一生,我无法获得返回码!

Import subprocess
Subprocess.call([‘SAS’,’/path/program.sas’])

Import subprocess
P = subprocess.check_output(“sas /path/program.sas”,stderr=subprocess.STDOUT,shell=True)
Print(p)

或     导入子流程     P = subprocess.Popen(“ sas /path/program.sas”,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)     proc.wait()     Standard_output,standard_error = proc.communicate *(     打印(proc.returncode) 或者

Import subprocess
Try:
  output = subprocess.check_output(‘sas /path/program.sas’,shell=true)
Except subprocess.CalledProcessError as exc:
  Print(“Status : Fail”,exc.returncode)

Python 2.7 Subprocess

SAS Completion Status

lavender110 回答:将SAS“返回代码” Aka%SYSRC返回到父Python脚本

就我而言,我一直收到返回码0或“”。这是由于我的sas程序而发生的。瞧,我的程序不过是一个无效的libname引用。

Libname x ‘blah’;

这在我预期为2时返回0。我向程序添加了abortabend,中提琴python返回了2。

proc = subprocess.Popen(“sas /path/program.sas;” shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
proc.wait()
standard_output,standard_error = proc.communicate()

print(proc.returncode)

请注意,您可能需要设置autoexec和config var或在命令中定义它们。

本文链接:https://www.f2er.com/3053263.html

大家都在问