2016-12-23 6 views
4

現在、絶対ファイルパスSAVE OUTFILE='my/path/to/file.sav'にファイルを保存します。これは最適ではないので、私はSAVE OUTFILE='file.sav'のような動的/相対ファイルパスにファイルを保存したいと思います。SPSS内の動的ファイルパス

私はカレントディレクトリを設定する必要がありますが、これは上記のように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. 

そして、これは確かに正常に動作しています。

答えて

4

SPSSには、これらのタイプの作業を容易にするための助けとなるFILE HANDLECDコマンドがあります(指摘したように)。

しかし私は、私が使用するすべての自分の仕事のセットアップを持っている別のアプローチを選択します。

あなたがそうのようなのpythonを使用して(保存)構文ファイルの動的な場所を取得することができます:

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

私はあなたがhereを見つけることができるとするのに役立つかもしれない過去にこれに対する詳細な解決策を掲載していますあなたのシナリオも。

+0

Cool。 'INSERT'を使うと、現在のディレクトリへのパスを変更することもできます。 –

+0

意味が分かりません...? –

+0

したがって、 'GET FILE = mystuff.sav.'を持つ構文ファイルがある場合は、" A.sps "と呼んでください。あなたが 'INSERT FILE =" YourDir \ A.sps "CD = YES.'を使うと、挿入されたファイルのコマンドは、" A.sps "ファイルがあるのと同じディレクトリを探します。 –

1

また、STATS OPEN PROJECT拡張コマンドを使用することもできます。プロジェクトを開き、定義されているアクションを実行します。データファイルを開いたり、構文を実行したりすることができます。常に必要な作業を行い、特定の作業のためにサブプロジェクトを行うマスタープロジェクトを作成できます。必要に応じて、統計の起動時にこれを行うように設定することができます。

STATS OPEN PROJECTは、V24の拡張機能メニューまたはV22または23のユーティリティ/拡張コマンドからインストールできます。

関連する問題