パス¶
システムの中に存在するファイル、ディレクトリーをプログラム内から指定する方法です。 ファイル、ディレクトリーの場所を示す文字列を パス(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アプリケーションの場合は、基本となるディレクトリーまでの絶対パスを設定ファイルに記述しておき、その絶対パスを変数に代入されるように設定しておきます。
利用時は [基本ディレクトリーまでの絶対パスが代入された変数] + [基本ディレクトリーからのパス]
のように書きファイルのパスを指定します。