パス¶
システムの中に存在するファイル、ディレクトリーをプログラム内から指定する方法です。 ファイル、ディレクトリーの場所を示す文字列を パス(path) と呼びます。
パスの書き方には 絶対パス と 相対パス があります。
絶対パス¶
絶対パスとは、ファイルシステムのルート(先頭のディレクトリー)から辿ったパスです。
file_a1.txt を絶対パスで表すと /A/file_a1.txt となります。
先頭のディレクトリーは / で表します。
Windowsの場合はドライブが先頭のディレクトリーになるので、ドライブ名を追加した C:/ などが先頭のディレクトリーになります。
先頭のディレクトリー / に続けてファイルまでのディレクトリー名を / で区切って書いていきます。最後がファイル名です。
file_e1.txt の絶対パスは /C/E/file_e1.txt です。
カレントディレクトリー¶
カレントディレクトリーとは、現在、実行中のディレクトリーです。Pythonプログラムを実行している場合、プログラムを起動しているディレクトリーになります。 ここでは、Pythonファイルと同じディレクトリーで実行しているとします。
カレントディレクトリーのパスは、 . になります。また、1つ上のディレクトリーのパスは .. になります。
相対パス¶
相対パスとは、カレントディレクトリーから辿ったパスです。
カレントディレクトリーを /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アプリケーションの場合は、基本となるディレクトリーまでの絶対パスを設定ファイルに記述しておき、その絶対パスを変数に代入されるように設定しておきます。
利用時は [基本ディレクトリーまでの絶対パスが代入された変数] + [基本ディレクトリーからのパス] のように書きファイルのパスを指定します。