[python] pathlib の使い方
pathlib の使い方
基本的な使い方
from pathlib import Path
cwd_path = Path('.') # >>> PosixPath('.')
relative_path = Path("scripts") / "python" / "util.py" # >>> PosixPath('scripts/python/util.py')
absolute_path = Path("/etc") / "init.d" / "reboot" # >>> PosixPath('/etc/init.d/reboot')
一覧
以降のサンプルコードでは、次の変数p
を使う。
p = Path('tests') / 'python' / 'pathlib.py'
# >>> PosixPath('tests/python/pathlib.py')
PurePath
pathliib
列でのp
はPurePath
を表すものとする。
変換
意味 | pathlib | サンプルコード | Link |
---|---|---|---|
/ を使用したパスを表す文字列を返す | p.as_posix() | Path('c:\\windows').as_posix() >>> 'c/windows' | link |
file URI で表したパスを返す。 | p.as_uri() | Path('/etc/passwd').as_uri() >>> 'file:///etc/passwd' p.as_uri() >>> ValueError: relative path can't be expressed as a file URI | link |
ディレクトリ
意味 | pathlib | サンプルコード |
---|---|---|
構成要素へのアクセス | p.parts | p.parts >>> ('tests', 'python', 'pathlib.py') |
ドライブを取得 | p.drive | Path('c:/Program Files/').drive >>> 'c:' |
ルートを表す文字列を取得 | p.root | Path('/etc/passwd').root >>> '/' |
ドライブとルートを結合した 文字列を取得 | p.anchor | Path('c:/Program Files/').anchor >>> 'c:\\' Path('/etc/passwd').anchor >>> '/' p.anchor >>> '' |
親要素たちを取得 | p.parents | map(str, p.parents) >>> ['tests/python', 'tests', '.'] |
親(1 個上の階層の Path)を取得 | p.parent | p.parent >>> PosixPath('tests/python') |
ファイル
意味 | pathlib | サンプルコード |
---|---|---|
パス要素の末尾の文字列を取得 | p.name | p.name >>> 'pathlib.py' Path('tests/fuga_dir/hoge_dir/').name >>> 'hoge_dir' |
ファイルの拡張子を取得 | p.suffix | p.suffix >>> '.py' |
ファイルの拡張子のリストを取得 | p.suffixes | Path(lib/mylib.tar.gz).suffixes >>> ['.tar', '.gz'] |
p.name から拡張子を除いたものを取得 | p.stem | p.stem >>> 'pathlib' |
確認系
意味 | pathlib | サンプルコード | Doc |
---|---|---|---|
パスが絶対パスかどうか | p.is_absolute() | p.is_absolute() >>> False | link |
パスがother に対して相対かどうか | p.is_relative_to(*other) | p.is_relative_to('tests') >>> True | link |
パスが Windows 上で 予約されてるかどうか | p.is_reserved() | p.is_reserved() >>> True False | link |
Path
https://docs.python.org/ja/3/library/pathlib.html#methods
参考文献
- 「pathlib --- オブジェクト指向のファイルシステムパス」、Python 3.11.0b5 ドキュメント、2022-12-30 最終閲覧、 https://docs.python.org/ja/3/library/pathlib.html
- 「[Python 入門]pathlib.Path クラスによるパス操作」、@IT、2022-12-30 最終閲覧、 https://atmarkit.itmedia.co.jp/ait/articles/1910/29/news019_2.html