Julia 中内置了 处理不同操作系统差异 的功能。 这一部分位于 Julia 核心库 BaseFilesystem 模块。

    每当需要处理 CSV,Excel 文件或其他 Julia 脚本时,请确保代码能够运行 在不同操作系统的文件系统 上。 这可以通过 joinpath@__FILE__pkgdir 函数轻松实现。

    当在包中开发代码时,可以使用 获取包的根目录。 例如,对于用来生成本书的 Julia Data Science (JDS) 包:

    如上所示,用来生成本书的代码运行在 Linux 电脑上。 在使用脚本时,可以使用如下方式获得脚本文件的路径:

    这两条命令的优点是它们与启动 Julia 的方式无关。 换句话说,无论以 julia scripts/script.jl 还是 julia script.jl 方式启动程序,两种方式每次返回的路径都是相同的。

    接下来建立从 root 到脚本文件的相对路径。 因为不同的操作系统采用不同的方式组织子文件夹的相对路径(一些采用斜杠 /,而另一些使用反斜杠 \),所以不能简单地通过字符串连接组合 路径与文件的相对路径。 因此需要使用 joinpath 函数,它将根据特定的文件系统实现,采用相应的方式连接不同的相对路径和文件名。

    joinpath 也能处理 子目录。 接下来考虑一种普遍的情形,项目目录中有一个名为 data/ 的子文件夹。 此文件夹中有一个名为 的 CSV 文件。 同样地,此 my_script.jl 文件路径的健壮实现如下所示:

    这是一个好习惯,因为它能为你或后来者避免问题。