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入門ロードマップにまとめています。

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら