我找不到如何在mathematica中使用相对路径。我的目录结构很简单。
Import["G:\\Research\\Acc and Vel Runs\\5-24\\Mathematica\\Data\\250 \
Acc.xls"][[1]] // TableForm
通过使用菜单中的插入路径演示绝对路径。我希望这款笔记本便携。我想给某人“Mathematica”目录,我希望他们能够运行代码。我不希望路径中断,因为它将在不同的机器上运行。基本上我只想使用从上面显示的Mathematica级别开始的相对路径。
答案 0 :(得分:6)
在Mathematica中,您可以使用Directory[]
获取当前目录,然后使用SetDirectory[]
将其设置为其他目录。您可以使用ReserDirectory[]
返回上一个位置,或使用DirectoryStack[]
检查之前的所有位置。
文档here中描述了这一点。
您可以将当前目录设置为笔记本使用的目录
SetDirectory[NotebookDirectory[]]
要使NotebookDirectory
正常工作,您必须使用前端,并且必须保存笔记本。
您始终可以使用相对于当前目录(Directory[]
)的路径,例如Import["data/somedata.txt"]
。
关于目录分隔符:/
将始终在所有Windows / Linux / Mac上运行。当您键入相对路径名时,使用/
进行便携性比FileNameJoin
更方便。
答案 1 :(得分:2)
我通常这样做。
SetDirectory[
FileNameJoin[{$InitialDirectory, "dir1", "dir2"}]];
Quiet[Close["Log.txt"]];
logStream = Quiet[OpenWrite["xmlAreaTagsLog.txt"]];
xmlDoc = Import["XmlData.xml"];
使用$ InitialDirectory可以获取.nb目录,使用FileNameJoin可以获得相对访问权。