🐍 Python

Path の作り方と / 演算子でのパス結合

pathlib.Pathはファイルパスを文字列ではなくオブジェクトとして扱うクラスです。文字列連結の代わりに/演算子でパスを組み立てられ、Windows・Linux・Macの区切り文字の違いを自動的に吸収してくれます。

from pathlib import Path
Path("folder") / "sub" / "file.txt"  # /演算子でパスを結合
Path("folder", "sub", "file.txt")    # 引数を複数渡しても同じ結果
from pathlib import Path

p = Path("folder") / "sub" / "file.txt"
print(p)
# folder\sub\file.txt (Windows) / folder/sub/file.txt (Linux/Mac)
print(type(p))
#  相当の型(Windowsの場合。Linux/Macでは PosixPath 相当)
# ※Python 3.13ではpathlib内部の実装分割によりと表示されるが、
#   実用上はこれまで通りPath/WindowsPath/PosixPathとして扱って問題ない
# 引数を複数渡す書き方も同じ結果になる
from pathlib import Path

p = Path("folder") / "sub" / "file.txt"
p2 = Path("folder", "sub", "file.txt")
print(p == p2)
# True
# カレントディレクトリの絶対パスを取得する
from pathlib import Path

print(Path.cwd().is_absolute())
# True
Pathの主な作り方
Path("...")
文字列を1つ渡してパスを作る。相対パス・絶対パスどちらも指定可能
Path("a") / "b"
/演算子でパスを結合する。右側には文字列もPathオブジェクトも渡せる
Path.cwd()
現在の作業ディレクトリを絶対パスのPathとして取得する
💡 AIコードレビュー観点:文字列連結によるパス組み立ては避ける

AIが生成したコードでfolder + "/" + filenameのように文字列の+でパスを組み立てている場合、Windows環境で区切り文字が食い違ったり、末尾のスラッシュの有無で二重スラッシュが生まれたりする不具合の原因になります。Path("folder") / filenameに置き換えることで、OSごとの区切り文字の違いを気にせず安全にパスを組み立てられます。

← Python pathlib クイックリファレンス一覧へ戻る / name/suffix/stemでパスを分解する →