代码之家  ›  专栏  ›  技术社区  ›  Draco Malfago

SPSS中的动态文件路径

  •  4
  • Draco Malfago  · 技术社区  · 8 年前

    目前,我将文件保存到绝对文件路径 SAVE OUTFILE='my/path/to/file.sav' .这不是最佳选择,因此我希望将文件保存到动态/相对文件路径,如 SAVE OUTFILE='file.sav' .

    因此,我需要设置当前目录,但这也同样适用 CD 'my/path/to/' 然后保存。但是我想知道SPSS在打开文件时是否不能自动设置目录?我们通常有很多人使用相同的语法,我们总是需要更改绝对文件路径。

    编辑:正如Jignesh Sutar所说,我也可以使用python扩展。所以我想我可以用一些简单的东西,比如:

    BEGIN PROGRAM.
    import spss,spssaux, os, SpssClient
    SpssClient.StartClient() 
    
    path = SpssClient.GetCurrentDirectory()
    print path
    spss.Submit(r"""CD = '%s'.""" % (path))
    SpssClient.StopClient()
    END PROGRAM.
    

    但是,上面的方法实际上只输出脚本,而不输出其他内容,然而,另一个简单的情况是:

    BEGIN PROGRAM.
    import spss
    firstvar=spss.GetVariableName(0)
    print firstvar
    END PROGRAM.
    

    这确实很好。

    2 回复  |  直到 8 年前
        1
  •  4
  •   Community Rick James    7 年前

    SPSS有一个 FILE HANDLE CD 命令(正如您所指出的)帮助尝试使这类事情更容易。

    然而,我选择了一种不同的方法,我的所有作业设置都可以使用,如果使用Python,也可以实现。

    您可以使用python获得(保存的)语法文件的动态位置,如下所示:

    os.path.dirname(SpssClient.GetDesignatedSyntaxDoc().GetDocumentPath()) 
    

    我在过去发布了一个详细的解决方案,你可以找到 here 并且可能会在您的场景中找到帮助。

        2
  •  1
  •   JKP    8 年前

    另一种可能性是使用STATS OPEN PROJECT扩展命令。这将打开一个项目并执行它定义的操作。它可以打开数据文件,运行任何语法,等等。您可以有一个主项目,它可以做您一直想要的事情,并为特定的工作提供子项目。如果需要,可以将其设置为在统计启动时执行此操作。

    STATS OPEN PROJECT可以从V24的扩展菜单或Utilities>V22或23中的扩展命令。