目次(まとめ)
- 絶対パスは、ファイルの場所を一意に表現するパスで、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
コンピュータ上での場所についての意識は重要なので、是非理解してみてください。