SPSS获取工作目录

时间:2013-01-07 15:47:08

标签: spss

我正在使用SPSS 19并希望获取当前工作目录以使用INSERT命令来调用其他语法文件。 有人知道怎么做吗?似乎有一个Python命令(SpssClient.GetCurrentDirectory()),但它返回一个乱码错误代码(我喜欢这堆废话称为SPSS ....)

4 个答案:

答案 0 :(得分:3)

经过一些谷歌搜索后,我发现了一种工作方法:

BEGIN PROGRAM.
import spss
import SpssClient
CONST_FHandleName = 'CurrentDir'

#SpssClient.StartClient() /stop nötig, sonst gibt es Probleme mit dem zugriff auf SPSS
try:
    SpssClient.StartClient()
    syntaxpath =SpssClient.GetDesignatedSyntaxDoc()
                currentdir = os.path.dirname(syntaxpath.GetDocumentPath())
    FHandle="File handle " + CONST_FHandleName + " /name='" + currentdir + "'"
finally:
    SpssClient.StopClient()
print "The FHandle Dir is now: " + currentdir 
print "The FHandle Dir is now: " + FHandle

spss.Submit(FHandle)
END PROGRAM.

该程序将获取当前语法文件的目录,并将该目录设置为文件句柄。当然,这不是真正的工作目录,而是适用于我的近似值。

警告:

spss.getworkingdirectory显然返回了第一个启动文件夹 - 不是活动数据集的文件夹(如果首先启动SPSS然后加载数据集,那么它仍然很好 - 它仍将指向其主目录,它无法写入.SPSS 19行为...)

答案 1 :(得分:3)

您可以像这样使用programmabilty apis,而不是使用脚本api。

开始计划。
进口spss,spssaux
workingdir = spssaux.getShow(“DIRECTORY”)
spss.Submit(“”“FILE HANDLE cwd / NAME =”%s“。”“”%workingdir)
结束计划。

这定义了一个名为cwd。

的文件句柄

另请注意,INSERT有一个CD关键字,用于将后端工作目录更改为FILE中指定的任何位置。

HTH, 乔恩佩克

答案 2 :(得分:2)

我已经能够通过SPSS 18将已启动的目录设置为默认目录。选择编辑>选项>文件位置。在数据文件和其他文件框中输入单个句点。每当您通过单击数据或语法文件启动SPSS时,它将默认为当前目录,即它启动的目录。适用于SPSS18,ymmv与其他版本。

顺便说一句,同样的技巧适用于Excel,但我没有找到任何其他适用的应用程序。在我看来,这是程序应该工作的方式,而不是强迫你进入你不想要的目录。

答案 3 :(得分:1)

在SPSS V23中尝试

CWD.
SHOW DIRECTORY.

如果无法识别CWD命令,请下载/安装CWD('当前工作目录')扩展名。选择实用工具>扩展束>下载并安装Extension Bundles,并搜索CWD。