絶対パス 相対パス を理解しよう

プログラミングの世界では、自分の位置を示す方法として絶対パス相対パスというものがあります。
パスの理解があやふやだと、つまらないミスで躓くことが多くなります。独学でプログラムを勉強した後に、現場で、「画像は相対パスで指定して」とか「ここは絶対パスのほうが良い」などと言われて混乱しないよう、しっかり基本を押さえておきましょう!

絶対パスと相対パスの違い

パスと言うのは英語で記載すると”path””通り道、通路、進路、軌道”という意味です。
パスとは、ファイルの場所やWebページのあるところまでの道筋を示す情報のことです。そして、その情報の表現方法には絶対パス相対パスの二種類があります。

絶対パス

絶対パスはフルパスとも呼ばれます。これはシステム内では重複しない位置を示します。絶対パスで指定することで、システム内の分岐や条件が変わったりしても参照したい位置を正確に示すことができます。

相対パス

相対パスは特定の場所を基準として、基準からの道筋を伝えることで位置を示します。相対パスで指定した位置は、基準の位置が変われば伴って変わることに注意しましょう。

具体例で見てみよう

では実際に具体例で見てみましょう。
以下のような構成のディレクトリ構造があります。「home」というのが一番大元になる場所で、参照したいデータは「my_data.txt」です。

このとき、「my_data.txt」の位置を絶対パスで表現すると、現在の位置に関わらず
/home/text/memo/my_data.txt
となります。Unix系OSの場合、絶対パスの最初は / で始まるのが特徴です。

次に相対パスを使ってみます。
もし、現在地が「text」ディレクトリを参照している場合の「my_data.txt」を示す相対パスは
text/memo/my_data.txt
です。

複雑な相対パス

例えば現在のディレクトリが「image」で「my_data.txt」を参照したい、という場合もあります。相対パスは現在地を元に指定しますので、その場合は、一度現在のディレクトリから出て一階層上に戻り、さらに「my_data.txt」を相対パスで指定します。
ひとつ前のディレクトリを参照する場合は、../と指定します。

imageが現在地の場合の相対パスは
../text/memo/my_data.txt
となります。

画像や他のページがエラーで表示されないという場合はこのパスの指定が間違ってる場合が多くあります。最初は複雑に見えるパスの指定ですが、慣れると簡単に出来ますので練習をしていきましょう!

スタートラボはPythonを基礎から勉強したい方向けのコースも実施中です!