目次(まとめ)
- 絶対パスは、ファイルの場所を一意に表現するパスで、MacのFinderから取得することができる
- 相対パスは、今いる場所からみたファイルの場所を表現するパス
- 絶対パスは、ターミナル上で「pwd」コマンドを実行しても取得可能



こんにちは、みっちゃんです。

今回の記事では、プログラミング初心者のために、ファイルやディレクトリ(フォルダ)のコンピュータ上での位置を示す「パス」について解説します。

絶対パスは、ファイルの場所を一意に表現するパスで、MacのFinderから取得することができる

「絶対パス」とは、ファイルやディレクトリ(フォルダ)のコンピュータ上での位置を、一意に表現するパスです。

つまり、コンピュータ上のどこからでも、そのファイルなどの「絶対パス」を見れば、それにアクセスできるということになります。

私は、データ解析のためにプログラミングすることが多いのですが、基本的に以下に示すようなディレクトリ(フォルダ)を準備しています。

ここでは「テスト」と名前をつけたプロジェクトについて考えています。

実際のプログラムやスクリプトを保存するディレクトリ「src」と、プログラムやスクリプトで使用するデータを保存するディレクトリ「data」を準備します。

ちなみに「src」とは「source code」の略です。


この画面からは、「テストというディレクトリの中に、"src"と"data"というディレクトリがある」ということがわかります。

しかし、コンピュータの中で考えると、そもそも「テスト」というディレクトリがどこにあるのかわかりません。


そこで「絶対パス」を取得します。

取得方法は簡単で、右クリックしてメニューを出した状態で「option」ボタンを押します。

下の図は「option」を押していない状態ですが、押すと「"src"のパス名をコピー」に表示が変更されるので、クリックしてコピーます。

貼り付けると、以下のようになります。

/Users/******/Desktop/テスト/src

これが「絶対パス」です。

相対パスは、今いる場所からみたファイルの場所を表現するパス

上と同じように、「テスト」と名前をつけたプロジェクトについて、プログラムなどを保存した「src」ディレクトリと、データなどを保存した「data」ディレクトリがあるとします。

「テスト」プロジェクトでまとめているということは、「src」ディレクトリの中のプログラムが取り扱うデータは「data」ディレクトリにまとめてあることが多いわけですが、その際に以下のような「絶対パス」を用いるのは効率的ではありません。

/Users/******/Desktop/テスト/src

なぜなら、"/Users/******/Desktop/" の部分がわかりきっていることだからです。

そこで「src」ディレクトリの中から「data」ディレクトリを表現する「相対パス」が有用になります。

例えば、「src」ディレクトリにあるプログラムの中で、"../data/sample.txt" とすれば、「data」ディレクトリにある"sample.txt"を指定することができます。

ちなみに".."は、"/Users/******/Desktop/テスト/src" からみて1つ上の階層である "/Users/******/Desktop/テスト/" を指定しています。


また「相対パス」は、他人とプログラムを共有する際にも有用です。

なぜなら、「絶対パス」は、人によって "/Users/******" の部分が異なっていたりして、プログラムが動かなくなるからです。

絶対パスは、ターミナル上で「pwd」コマンドを実行しても取得可能

「絶対パス」については、コマンドを使っても取得することができます。

$ pwd


コンピュータ上での場所についての意識は重要なので、是非理解してみてください。