概要
ファイル操作する上で書き慣れたos
やos.path
からpathlib
に移行する上で頻出なファイル操作をまとめた。
背景
Python3で書いているなら、シンプルかつオブジェクト指向でファイルを操作できるpathlib
に移行しない理由がないのですが、既存のos.path
によるファイル操作とUIが大きく変わっているので、都度ググらずに済むように作りました。
基本
簡単のため、どれも
import os
import pathlib
をしているとします。
絶対Pathの取得
# os
os.path.abspath("foo.txt")
# pathlib
pathlib.Path("foo.txt").resolve()
ファイル削除
# os
os.remove("foo.txt")
# pathlib
pathlib.Path("foo.txt").unlink()
ディレクトリ削除
# os
os.rmdir("bar")
# pathlib
pathlib.Path("bar").rmdir()
拡張子の取得
# os
os.path.splitext("foo.txt")[1]
# pathlib
pathlib.Path("foo.txt").suffix
ファイル名の取得
# os
os.path.basename("bar/foo.txt")
# pathlib
pathlib.Path("bar/foo.txt").name
ディレクトリ以下の出力(要はls
コマンド)
#os
os.listdir("bar")
#pathlib
pathlib.Path("bar").iterdir()
応用
親ディレクトリの取り方
# os
os.path.dirname(os.path.abspath(__file__))
# pathlib
pathlib.Path(__file__).resolve().parent
Pathの結合
# os
os.path.join("foo", os.path.join("bar", "baz"))
# pathlib
pathlib.Path("foo") / "bar" / "baz"
あとがき
また開発していて思いついたら追記していきます。リクエストなどもあればコメントください。