Python pathlibとは?Pathクラスの使い方を初心者向けに解説

Pythonでファイルやフォルダを操作するとき、「pathlib」という標準ライブラリがよく使われます。
pathlibを使うと、ファイルのパスを文字列として扱うよりも、読みやすく安全にファイルやディレクトリを操作できます。
この記事では、Python初心者向けにpathlibの基本から、ファイル・フォルダの作成、存在確認、読み書き、一覧取得などを解説します。
Python pathlibとは?
pathlibは、Pythonでファイルやディレクトリのパスを扱うための標準ライブラリです。
Python 3.4以降で利用できます。
従来はos.pathを使ってファイルパスを操作することが多くありましたが、pathlibではパスをPathオブジェクトとして扱えます。
from pathlib import Path
path = Path("sample.txt")
print(path)
実行すると、次のように表示されます。
sample.txt
pathlibの基本は、Pathクラスを理解することです。
pathlibの基本的な使い方
まずpathlibからPathをインポートします。
from pathlib import Path
そして、Path()にファイルやフォルダのパスを指定します。
from pathlib import Path
path = Path("data/sample.txt")
print(path)
このpathは単なる文字列ではなく、Pathオブジェクトです。
Pathクラスとは?
Pathは、ファイルやディレクトリのパスを表すためのクラスです。
たとえば、次のように使用します。
from pathlib import Path
path = Path("data/sample.txt")
print(path)
print(type(path))
実行すると、次のようになります。
data/sample.txt
<class 'pathlib.PosixPath'>
WindowsではWindowsPathになるなど、実行環境に応じたPathオブジェクトが使用されます。
現在のフォルダを取得する
Path.cwd()を使うと、現在の作業フォルダを取得できます。
from pathlib import Path
path = Path.cwd()
print(path)
たとえば、次のような結果になります。
/Users/user/project
プログラムを実行している現在の作業ディレクトリを確認したいときに便利です。
ホームディレクトリを取得する
Path.home()を使うと、ユーザーのホームディレクトリを取得できます。
from pathlib import Path
path = Path.home()
print(path)
パスを結合する
pathlibでは、/演算子を使ってパスを結合できます。
from pathlib import Path
path = Path("data") / "sample.txt"
print(path)
結果は次のようになります。
data/sample.txt
さらに複数のパスをつなげることもできます。
from pathlib import Path
path = Path("data") / "2026" / "09" / "sample.txt"
print(path)
この方法は、OSごとのパス区切り文字を意識せずにコードを書けるというメリットがあります。
ファイルが存在するか確認する
exists()を使うと、指定したパスが存在するか確認できます。
from pathlib import Path
path = Path("sample.txt")
if path.exists():
print("存在します")
else:
print("存在しません")
ファイルかどうか確認する
is_file()を使うと、指定したパスがファイルかどうか確認できます。
from pathlib import Path
path = Path("sample.txt")
if path.is_file():
print("ファイルです")
フォルダかどうか確認する
is_dir()を使うと、指定したパスがディレクトリかどうか確認できます。
from pathlib import Path
path = Path("data")
if path.is_dir():
print("フォルダです")
ファイルを作成する
touch()を使うと、ファイルを作成できます。
from pathlib import Path
path = Path("sample.txt")
path.touch()
存在しない場合はsample.txtが作成されます。
フォルダを作成する
mkdir()を使うと、ディレクトリを作成できます。
from pathlib import Path
path = Path("data")
path.mkdir()
親フォルダもまとめて作成したい場合は、parents=Trueを指定します。
from pathlib import Path
path = Path("data/2026/python")
path.mkdir(parents=True)
すでにフォルダが存在していてもエラーにしたくない場合は、exist_ok=Trueを指定できます。
from pathlib import Path
path = Path("data")
path.mkdir(exist_ok=True)
ファイルを読み込む
Path.read_text()を使うと、テキストファイルを読み込めます。
from pathlib import Path
path = Path("sample.txt")
text = path.read_text()
print(text)
文字コードを指定することもできます。
from pathlib import Path
path = Path("sample.txt")
text = path.read_text(encoding="utf-8")
print(text)
日本語を扱うファイルでは、encoding="utf-8"を指定しておくと分かりやすいでしょう。
ファイルに書き込む
write_text()を使うと、テキストファイルに文字列を書き込めます。
from pathlib import Path
path = Path("sample.txt")
path.write_text("Python pathlibを勉強しています。", encoding="utf-8")
ファイルが存在しない場合は作成されます。
ファイルを削除する
unlink()を使うと、ファイルを削除できます。
from pathlib import Path
path = Path("sample.txt")
path.unlink()
実際に削除されるため、削除対象を間違えないように注意してください。
フォルダを削除する
空のディレクトリはrmdir()で削除できます。
from pathlib import Path
path = Path("data")
path.rmdir()
ファイルが入っているディレクトリをrmdir()で削除することはできません。
ファイル名を取得する
name属性を使うと、パスからファイル名を取得できます。
from pathlib import Path
path = Path("data/sample.txt")
print(path.name)
結果は次のとおりです。
sample.txt
拡張子を取得する
suffix属性を使うと、ファイルの拡張子を取得できます。
from pathlib import Path
path = Path("sample.txt")
print(path.suffix)
結果は次のとおりです。
.txt
ファイル名から拡張子を除く
stem属性を使うと、拡張子を除いたファイル名を取得できます。
from pathlib import Path
path = Path("sample.txt")
print(path.stem)
結果は次のとおりです。
sample
親フォルダを取得する
parent属性を使うと、親ディレクトリを取得できます。
from pathlib import Path
path = Path("data/sample.txt")
print(path.parent)
結果は次のようになります。
data
複数の親フォルダを取得する
parentsを使うと、上位のディレクトリを取得できます。
from pathlib import Path
path = Path("data/2026/python/sample.txt")
print(path.parents[0])
print(path.parents[1])
print(path.parents[2])
ファイルやフォルダの一覧を取得する
iterdir()を使うと、ディレクトリ内のファイルやフォルダを取得できます。
from pathlib import Path
path = Path("data")
for item in path.iterdir():
print(item)
たとえば、次のようなファイル構成の場合を考えます。
data/
├── sample.txt
├── test.txt
└── python/
iterdir()を使うと、これらを順番に取得できます。
特定の拡張子のファイルを取得する
glob()を使うと、条件に一致するファイルを取得できます。
たとえば、.txtファイルだけを取得する場合は次のように書きます。
from pathlib import Path
path = Path("data")
for file in path.glob("*.txt"):
print(file)
サブフォルダも含めて検索する
rglob()を使うと、サブディレクトリも含めてファイルを検索できます。
from pathlib import Path
path = Path("data")
for file in path.rglob("*.py"):
print(file)
これは、プロジェクト内にあるPythonファイルをまとめて探すときなどに便利です。
ファイル名を変更する
rename()を使うと、ファイルやディレクトリの名前を変更できます。
from pathlib import Path
old_path = Path("old.txt")
new_path = Path("new.txt")
old_path.rename(new_path)
ファイルを移動する
rename()を使って、ファイルを別のディレクトリへ移動することもできます。
from pathlib import Path
source = Path("sample.txt")
destination = Path("data/sample.txt")
source.rename(destination)
絶対パスを取得する
absolute()やresolve()を使うと、絶対パスを取得できます。
from pathlib import Path
path = Path("sample.txt")
print(path.resolve())
たとえば次のような絶対パスになります。
/Users/user/project/sample.txt
ファイルサイズを取得する
stat().st_sizeを使うと、ファイルサイズを取得できます。
from pathlib import Path
path = Path("sample.txt")
size = path.stat().st_size
print(size)
サイズはバイト単位で取得されます。
pathlibとos.pathの違い
Pythonでは以前からos.pathを使ってパスを操作してきました。
たとえばos.pathでは次のように書きます。
import os
path = os.path.join("data", "sample.txt")
print(path)
pathlibでは次のように書けます。
from pathlib import Path
path = Path("data") / "sample.txt"
print(path)
pathlibではパスそのものがオブジェクトになるため、ファイルの存在確認や読み書きなどを同じオブジェクトから操作できます。
新しくPythonを学ぶ場合は、ファイルパスを扱う方法としてpathlibを覚えておくと便利です。
pathlibでよく使う機能一覧
| 機能 | 用途 |
|---|---|
Path() |
パスを作成する |
Path.cwd() |
現在のフォルダを取得する |
Path.home() |
ホームディレクトリを取得する |
exists() |
パスが存在するか確認する |
is_file() |
ファイルか確認する |
is_dir() |
ディレクトリか確認する |
mkdir() |
ディレクトリを作成する |
touch() |
ファイルを作成する |
read_text() |
テキストファイルを読む |
write_text() |
テキストファイルに書き込む |
unlink() |
ファイルを削除する |
rmdir() |
空のディレクトリを削除する |
iterdir() |
ディレクトリの中身を取得する |
glob() |
パターンに一致するファイルを検索する |
rglob() |
サブディレクトリも含めて検索する |
rename() |
名前変更・移動を行う |
resolve() |
絶対パスを取得する |
stat() |
ファイル情報を取得する |
pathlibを使うメリット
pathlibには、次のようなメリットがあります。
- ファイルパスをオブジェクトとして扱える
- コードが読みやすくなる
- ファイル操作を直感的に書ける
- WindowsやmacOS、Linuxなどの違いを意識しにくい
os.pathよりも現代的な書き方ができる
Pythonでファイル操作をするならpathlibを覚えよう
pathlibは、Pythonでファイルやディレクトリを扱うときに非常に便利な標準ライブラリです。
特に重要なのは、Pathクラスです。
from pathlib import Path
path = Path("data/sample.txt")
print(path.exists())
print(path.name)
print(path.suffix)
print(path.parent)
まずはPath()、exists()、is_file()、is_dir()、mkdir()、read_text()、write_text()、glob()あたりから覚えると、実際のプログラムでも使いやすくなります。
Pythonでファイル操作を行う機会が増えてきたら、os.pathだけでなくpathlibを積極的に使ってみましょう。
あわせて読みたい
ここで扱った内容は、他のPython機能と組み合わせて使う場面が多くあります。あわせてPython pathlib クラス一覧、Python pathlib メンバー一覧、Python pathlib関数一覧も参考になります。
Pythonの文法や学習の順序から確認したい場合はPython入門ロードマップにまとめています。



