ファイルはファイル名とパスを使って表現します。
今回は、Pythonのパスの取り扱いについて説明します。
OS別のパスの表現方法
パスの表現はOSで違ってきます。
ルートディレクトリから特定のファイルを指定するには次のように記述します。
MacまたはLinuxの場合 /Users/tahara/flask_blog/server.py Windowsの場合
Windowsではフォルダの間をバックスラッシュ(\)または¥で区切ります。
C:\Users\tahara\flask_blog\server.py
どのOSでも対応するパス
どちらのOSでも対応できるようにするには、 os.path.join() を使います。
import os my_file = os.path.join('Users', 'tahara', 'flask_blog', 'server.py') print(my_file)
結果
Users/tahara/flask_blog/server.py
絶対パスと相対パスについて
ファイルパスには、絶対パスと相対パスの2つの方法で表現することができます。
絶対パスはルートフォルダを起点にしたもので、相対パスは現在作業しているフォルダ(カレントディレクトリ)を起点にしたパスです。
絶対パス:ルートフォルダ基準
相対パス:カレントディレクトリ基準(カレントワークディレクトリ)
Pythonでカレントディレクトリを確認する方法
Pythonでカレントディレクトリを確認するには、os.getcwd() を使用します。
また、カレントディレクトリを変更するには、os.chdir() を使用します。
Google Colaboでカレントディレクトリを確認する例
import os os.getcwd()
結果
/content
Google Colaboで標準で用意されているsample_dataディレクトリにカレントディレクトリを変更する例
os.chdir('/content/sample_data') os.getcwd()
結果
/content/sample_data
Google Colaboratoryでパスを確認
Google Colaboでファイルやパスのパスを確認するには、対象のファイルやフォルダを右クリックして出てくるメニューから「パスをコピー」を選択すればパスをコピーすることができます。
新しいディレクトリを作成
新しいディレクトリを作成するには、os.makedirs() を使います。
Google Colaboのカレントディレクトリにimagesディレクトリを作成する例
import os os.makedirs('./images')
結果
カレントディレクトリにimagesディレクトリが新規作成されます。
os.pathモジュールの使い所
相対パスから絶対パスを取得
import os os.path.abspath('./sample_data/README.md')
結果
/content/sample_data/README.md
絶対パスから相対パスを取得
os.path.relpath('/content/sample_data/README.md', './')
結果
sample_data/README.md
パスからファイル名だけ取り出す。
path = '/content/sample_data/README.md' os.path.basename(path)
結果
README.md
パスだけ取り出す
os.path.dirname(path)
結果
/content/sample_data
パスとファイル名を分割してタプルにする
os.path.split(path)
結果
(‘/content/sample_data’, ‘README.md’)
参考になった書籍
「退屈なことはPython にやらせよう」は正規表現の説明や今回のテーマとなる「ファイルとファイルパス」についての解説がされています。今回の記事もこの本を参考にしています。単なる入門書ではなく入門時につまづきやすいところをうまくフォローしている本です。