我的SAS会话启动时遇到了一个问题,随后等待Python脚本完成。我正在使用Python进行词袋分析,并添加了一些情感分析以获取味道,脚本执行得很好,但是SAS在启动它之后一直坚持下去。这就带来了一个问题,因为SAS程序的其余部分需要Python脚本的结果才能正确运行。
我尝试在SAS中使用waitfor all命令,但是对于这个特定问题似乎不起作用。
这是我在SAS中执行的代码:
%pScript_loc=path\pythonTester.py; /* LOCATION OF THE PROGRAM */
filename temp pipe "otherPath\python.exe &pScript."; /* LOCATION OF PYTHON EXECUTABLE */
data _null_;
infile temp;
input;
put _infile_;
run;
waitfor _all_;
这应该确保SAS程序可以启动Python程序,但是似乎并不能有效地使SAS等待Python完成其工作。
最佳答案
尝试使用x
命令而不是data _null_
步骤。默认情况下,xsync
在SAS中处于打开状态,这意味着在Python脚本完成之前,操作系统不会将控制权交还给SAS。
%let %pScript_loc=path\pythonTester.py;
x "otherPath\python.exe &pScript.";
您也可以选择使用
saspy
包并从那里进行所有操作,而完全跳过SAS编辑器。关于python - 如何强制SAS等待命令完全执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56028856/