我使用的是SPSS19,想得到当前的工作目录,使用INSERT命令,调用额外的语法文件。有人知道怎么做吗?似乎有一个Python命令(SpssClient.GetCurrentDirectory()),但它返回一个胡言乱语的错误代码(我喜欢这堆叫做SPSS的废话……)
发布于 2013-01-08 23:10:24
您可以像这样使用可编程API,而不是使用脚本API。
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
发布于 2013-01-08 18:19:45
在谷歌搜索之后,我发现了一个有效的方法:
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行为...)
发布于 2013-05-01 02:53:25
我已经能够让SPSS18将启动它的目录设置为默认目录。选择编辑>选项>文件位置。在“数据文件”和“其他文件”框中输入单个句号。每当您通过单击数据或语法文件启动SPSS时,它都会默认到当前目录,即启动它的目录。适用于SPSS18,ymmv和其他版本。
顺便说一句,同样的技巧也适用于Excel,但我没有发现任何其他适用于它的应用程序。在我看来,这是程序应该工作的方式,而不是强迫你进入一些你不想要的目录。
https://stackoverflow.com/questions/14199254
复制相似问题