我的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/

10-13 22:59