【问题标题】:SPSS Get working directorySPSS 获取工作目录
【发布时间】:2012-12-21 09:03:23
【问题描述】:

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

【问题讨论】:

    标签: spss


    【解决方案1】:

    经过一番谷歌搜索,我找到了一种工作方法:

    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.
    

    此程序将获取当前 Syntax-File 的目录并将该目录设置为文件句柄。当然,这不是真正的工作目录,而是对我有用的近似值。

    注意:

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

    【讨论】:

      【解决方案2】:

      您可以像这样使用可编程 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, 乔恩·派克

      【讨论】:

      • 我知道 CD 命令,但我的问题是找到一个有用的位置来指向文件句柄。我不想硬编码这条路径...
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        在 SPSS V23 中尝试

        CWD.
        SHOW DIRECTORY.
        

        如果无法识别命令 CWD,请下载/安装 CWD(“当前工作目录”)扩展。选择 Utilities > Extension Bundles > Download and Install Extension Bundles,然后搜索 CWD。​​p>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-29
          • 2012-07-22
          • 1970-01-01
          • 2010-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-03
          相关资源
          最近更新 更多