パス

システムの中に存在するファイル、ディレクトリをプログラム内から指定する方法です。 ファイル、ディレクトリの場所を示す文字列を パス(path) と呼びます。

パスの書き方には 絶対パス相対パス があります。

絶対パス

絶対パスとは、ファイルシステムのルート(先頭のディレクトリ)から辿ったパスです。

パス

file_a1.txt を絶対パスで表すと /A/file_a1.txt となります。

先頭のディレクトリは / で表します。

Windowsの場合はドライブが先頭のディレクトリになるので、ドライブ名を追加した C:/ などが先頭のディレクトリになります。

先頭のディレクトリ / に続けてファイルまでのディレクトリ名を / で区切って書いていきます。最後がファイル名です。

file_e1.txt の絶対パスは /C/E/file_e1.txt です。

相対パス

相対パスとは、カレントディレクトリから辿ったパスです。

カレントディレクトリとは、現在、実行中のディレクトリです。Pythonプログラムを実行している場合、プログラムを起動しているディレクトリになります。 ここでは、Pythonファイルと同じディレクトリで実行しているとします。

パス

カレントディレクトリを /A として、ディレクトリ /A の中にある sample1.py を実行しているとします。 sample1.py 中から、同じく/A の中にあるファイル file_a1.txt を相対パスで参照する場合は、 file_a1.txt とファイル名のみか、 ./file_a1.txt とカレントディレクトリを表す ./ をファイル名の前につけます。

パス

カレントディレクトリを /C/D として、 /C/D/sample2.py の場合を考えます。 /C/E/file_e1.txt を利用するには ../E/file_e1.txt と記述します。

../ は一つ親のディレクトリを意味しています。../E はディレクトリ D の一つ親のディレクトリ C の下のディレクトリ E を表します。

どちらを使うか

プログラムを含むファイルをディレクトリ構成のままいろいろなサーバーにコピーして使う場合は、プログラムの中では相対パスを利用します。絶対パスで指定すると移動するたびに修正する必要があるので、相対パスでよければ相対パスで指定します。

Webアプリケーションの場合は、基本となるディレクトリまでの絶対パスを設定ファイルに記述しておき、その絶対パスを変数に代入されるように設定しておきます。 利用時は [基本ディレクトリまでの絶対パスが代入された変数] + [基本ディレクトリからのパス] のように書きファイルのパスを指定します。