5

Mathematica で相対パスを使用する方法が見つかりません。私のディレクトリ構造は単純です。

Import["G:\\Research\\Acc and Vel Runs\\5-24\\Mathematica\\Data\\250 \
Acc.xls"][[1]] // TableForm  

これは、メニューから挿入パスを使用して絶対パスを示しています。このノートを携帯できるようにしたい。「Mathematica」ディレクトリを誰かに与えて、コードを実行できるようにしたいと考えています。別のマシンで実行されるため、パスを壊したくありません。基本的に、上記の Mathematica レベルから始まる相対パスを使用したいだけです。

4

2 に答える 2

6

Mathematica では、 を使用して現在のディレクトリを取得し、 を使用Directory[]して別の場所に設定できますSetDirectory[]。を使用して最後の場所に戻るReserDirectory[]か、 を使用して以前のすべての場所を確認できますDirectoryStack[]

これについては、こちらのドキュメントで説明されています。

現在のディレクトリをノートブックが使用しているディレクトリに設定できます

SetDirectory[NotebookDirectory[]]

が機能するにはNotebookDirectory、フロント エンドを使用している必要があり、ノートブックを保存する必要があります。

Directory[]たとえば、現在のディレクトリ ( ) に対する相対パスをいつでも使用できますImport["data/somedata.txt"]

ディレクトリセパレーターについて: /Windows/Linux/Mac のすべてで常に機能します。相対パス名を入力する場合は/FileNameJoin.

于 2012-05-26T12:54:18.370 に答える
2

私は通常これを行います。

SetDirectory[
  FileNameJoin[{$InitialDirectory, "dir1", "dir2"}]];
Quiet[Close["Log.txt"]];
logStream = Quiet[OpenWrite["xmlAreaTagsLog.txt"]];
xmlDoc = Import["XmlData.xml"];

$InitialDirectory を使用すると .nb ディレクトリが取得され、FileNameJoin を使用すると相対アクセスが可能になります。

于 2012-05-25T22:02:02.613 に答える