Pynote

Python、機械学習、画像処理について

Python - os.path を使ったファイルパス操作 チートシート (頻出パターンまとめ)

インポート

from os import path

指定したパスの絶対パスを取得する。

print(path.abspath('test'))  # /root/notebook/test

指定したパスのファイル名を取得する。

print(path.basename('/root/image/sample.png'))  # sample.png
print(path.basename('/root/image'))  # image
print(path.basename('/root/image/'))  # 末尾に / をつけると、空の文字列になる。

パス一覧の共通するパスを取得する。

paths = ['/root/image/1.png',
         '/root/image/2.png',
         '/root/image/3.png']
print(path.commonpath(paths))  # /root/image

パス一覧の共通部分を取得する。

共通するパスではないので注意する。

paths = ['/root/image/sample1.png',
         '/root/image/sample2.png',
         '/root/image/sample3.png']
print(path.commonprefix(paths))  # /root/image/sample

ディレクトリを取得する。

print(path.dirname('/root/image/1.png'))  # /root/image

パスが存在するかどうか判定する。

print(path.exists('/root/notebook'))  # True

~ で始まるパスをホームディレクトリに置き換える。

print(path.expanduser('~/notebook'))  # /root/notebook

パスに含まれる環境変数を展開して取得する。

print(path.expandvars('$HOME/notebook'))  # /root/notebook

絶対パスかどうか判定する。

print(path.isabs('/root/notebook/train.csv'))  # True

指定したパスがファイルかどうか判定する。

print(path.isfile('/root/notebook/train.csv'))  # True

指定したパスがディレクトリかどうか判定する。

print(path.isdir('/root/notebook'))  # True

複数のパスを結合する。

print(path.join('/root/notebook', 'image', 'sample.png'))  # /root/notebook/image/sample.png

パスを正規化する。

print(path.normpath('/root/notebook/../image/sample.png'))  # /root/image/sample.png

あるパスから別のパスへの相対パスを取得する。

第2引数から第1引数への相対パスを取得する。

print(path.relpath('/root', start='/root/notebook/image'))  # ../..

パスをファイル名とそれ以外に分割する。

dirname, basename = path.split('/root/image/sample.png')
print(dirname, basename)  # /root/image sample.png

パスを拡張子とそれ以外に分割する。

root, ext = path.splitext('/root/image/sample.png')
print(root, ext)  # /root/image/sample .png