首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPSS获取工作目录

SPSS获取工作目录
EN

Stack Overflow用户
提问于 2013-01-07 23:47:08
回答 4查看 3.1K关注 0票数 4

我使用的是SPSS19,想得到当前的工作目录,使用INSERT命令,调用额外的语法文件。有人知道怎么做吗?似乎有一个Python命令(SpssClient.GetCurrentDirectory()),但它返回一个胡言乱语的错误代码(我喜欢这堆叫做SPSS的废话……)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-08 23:10:24

您可以像这样使用可编程API,而不是使用脚本API。

代码语言:javascript
复制
begin program.  
import spss, spssaux  
workingdir = spssaux.getShow("DIRECTORY")  
spss.Submit("""FILE HANDLE cwd /NAME="%s".""" % workingdir)  
end program.  

这定义了一个名为cwd的文件句柄。

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

HTH,Jon Peck

票数 4
EN

Stack Overflow用户

发布于 2013-01-08 18:19:45

在谷歌搜索之后,我发现了一个有效的方法:

代码语言:javascript
复制
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行为...)

票数 3
EN

Stack Overflow用户

发布于 2013-05-01 02:53:25

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14199254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档