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