Python活用 パスの取り扱い(絶対パスと相対パスを操る)

lecture

ファイルはファイル名とパスを使って表現します。
今回は、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 にやらせよう」は正規表現の説明や今回のテーマとなる「ファイルとファイルパス」についての解説がされています。今回の記事もこの本を参考にしています。単なる入門書ではなく入門時につまづきやすいところをうまくフォローしている本です。

タイトルとURLをコピーしました