この記事はこんな方のために書いています。
・pathlibモジュールのコマンドを忘れてしまった方
・pathlibモジュールを使ってみたい方
本記事ではPython3.4から導入された『pathlib』モジュールについて解説していきます。pathlibはosモジュール同様、ファイル・ディレクトリの操作が可能なモジュールです。
pathlibを使えば、下記のようなことができます。
- パスの作成
- パスの結合
- パスが存在するかの確認
- パスがファイルかディレクトリなのか判別
- パスのファイル名、拡張子を取得
Contents
- 1 pathlibを使う準備をしよう
- 2 pathlibコマンド① Pathでパスを作成する
- 3 pathlibコマンド② パスの存在確認する exists
- 4 pathlibコマンド③ パスの種類を確認する is_fileとis_dir
- 5 pathlibコマンド④ ファイル名を結合してパスを作成する
- 6 pathlibコマンド⑤ ファイル名を取得する name
- 7 pathlibコマンド⑥ ファイルの拡張子を取得する suffix
- 8 pathlibコマンド⑦ 拡張子以外を抜き出す stem
- 9 pathlibコマンド⑧ パスを分解し要素を抜き出す parts
- 10 pathlibコマンド⑨ 親ディレクトリを取得する parent
デスクトップでもどこでも良いので、下画像のファイル構成になるように、必要なファイルやディレクトリを作成してください。
ターミナルで作成してもOKですが、VScode上で操作すると分かりやすいですね。

今回はmain.pyにPythonのコードを書いていきます。
pathlibを使うためには、main.pyでimport文で読み込む必要があります。
pathlibに限らず、モジュールを使用する際は、import文で読み込みます。
from pathlib import Path
ここまででpathlibを使用する準備は完了です。
ファイルやディレクトリのパスを作成するのは、『Path()』コマンドです。
Path(作成したいファイル名 or ディレクトリ名)
まずはtest_dirディレクトリのパスを作成します。
from pathlib import Path
# パスの作成
p = Path('test_dir')
print(p) #実行結果 test_dir
Pathコマンドでパスを作成することで、これから紹介していくpathlibの便利なコマンドを使えるようになります。
『exists(パス名)』でパスが存在するか確認できます。
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの存在・種類確認
print(p.exists()) #実行結果 True
パスがファイルかディレクトリか判別するコマンドが『is_file(パス名)』と『is_dir(パス名)』です。
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの種類確認
print(p.is_file()) #False
print(p.is_dir()) #True
今回の場合、test_dirはディレクトリなので、is_dir()の結果がTrueになります。
sub_dirディレクトリ配下のtest5.txtのパスを作成したい場合、『/ (スラッシュ)』を使えばOKです。
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの結合
new_path = p / 'sub_dir' / 'test5.txt'
print(new_path)
#test_dir/sub_dir/test5.txt
『パス名.name』で、パスからファイル名を取得することができます。
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの結合
new_path = p / 'sub_dir' / 'test5.txt'
print(new_path)
# ファイル名を取得
print(new_path.name) #test5.txt
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの結合
new_path = p / 'sub_dir' / 'test5.txt'
print(new_path)
# 拡張子の取得
print(new_path.suffix) #.txt
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの結合
new_path = p / 'sub_dir' / 'test5.txt'
print(new_path)
# ファイル名から拡張子を除いた文字
print(new_path.stem) #test5
パスを分解して、要素をタプルで返す。
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの結合
new_path = p / 'sub_dir' / 'test5.txt'
print(new_path)
# パスを分解したものを取得
print(new_path.parts) #('test_dir', 'sub_dir', 'test5.txt')
from pathlib import Path
# パスの作成
p = Path('test_dir')
# パスの結合
new_path = p / 'sub_dir' / 'test5.txt'
print(new_path)
# 親ディレクトリを取得
print(new_path.parent) #test_dir/sub_dir
コメントを残す