ファイルやフォルダを扱うとき、「パスの文字列を結合するのが面倒」「OSによって区切り文字が違って困る」と感じたことはありませんか?そんなときに便利なのが、標準ライブラリの pathlib です。
この記事では、pathlib の Path を使ったパスの組み立て、ファイルの存在確認、読み書き、フォルダ内の検索までを、実行結果つきで初心者向けに解説します。
pathlibとは?
pathlib は、ファイルパスを「文字列」ではなく「オブジェクト」として扱えるモジュールです。os.path を使った書き方より読みやすく、WindowsでもMacでも同じコードで動かせます。
Pathの基本:パスを組み立てる
from pathlib import Path
base = Path("data")
file = base / "sample.txt" # / でパスを結合できる
print(file) # data/sample.txt(Windowsでは data\sample.txt)
print(file.name) # sample.txt
print(file.stem) # sample
print(file.suffix) # .txt
print(file.parent) # data/ 演算子でパスをつなげられるのが pathlib の大きな特徴です。name(ファイル名)、stem(拡張子なし)、suffix(拡張子)、parent(親フォルダ)も属性として取り出せます。
存在確認とフォルダの作成
from pathlib import Path
folder = Path("output")
folder.mkdir(exist_ok=True) # すでにあってもエラーにならない
print(folder.exists()) # True
print(folder.is_dir()) # True
print(folder.is_file()) # Falseファイルの読み書き
Path には、短いテキストを読み書きするメソッドが用意されています。
from pathlib import Path
file = Path("output") / "memo.txt"
file.write_text("こんにちは\nPythonです", encoding="utf-8")
text = file.read_text(encoding="utf-8")
print(text)
# こんにちは
# Pythonです大きなファイルを1行ずつ処理したいときは、with構文の使い方と open を組み合わせるのが基本です。使い分けの目安として覚えておくと便利です。
ファイル操作は実務の自動化でも頻出ですが、独学だとエラーの原因を探すだけで時間が溶けがちです。学習の進め方に迷ったら、Pythonが学べるプログラミングスクールの比較記事も参考にしてください。
フォルダ内のファイルを探す
from pathlib import Path
folder = Path("output")
# 直下の .txt ファイルを列挙
for f in folder.glob("*.txt"):
print(f.name)
# memo.txt
# サブフォルダも含めて探す
for f in folder.rglob("*.txt"):
print(f)よく使うメソッドまとめ
- Path.cwd():現在の作業フォルダ
- Path.home():ホームフォルダ
- exists():存在するか
- mkdir(parents=True, exist_ok=True):途中のフォルダごと作成
- rename():名前変更・移動
- unlink():ファイル削除(元に戻せないので注意)
もっと効率的にPythonを学びたい人へ
ファイル操作は、業務の自動化を目指す方がほぼ必ず通る道です。自分の仕事に合わせたスクリプトを作れるようになりたい方は、マンツーマンで相談しながら学べるスクールも検討してみてください。
Winスクールの「Python Winner」は、マンツーマン指導で未経験からPythonを学べ、転職サポートや無料カウンセリングにも対応しています。まずは無料カウンセリングで、自分に合うか確かめてみてはいかがでしょうか。
※本記事には広告(アフィリエイトリンク)を含みます。
Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】![]()
他のスクールとも比べたい方は、スクールの比較記事もあわせてご覧ください。資格取得を目指す方はPython3エンジニア認定基礎試験の参考書比較も参考になります。
まとめ
- pathlib はパスをオブジェクトとして扱える標準ライブラリ
- / 演算子でパスを結合でき、OSの違いを意識しなくてよい
- exists・mkdir・read_text・write_text でよく使う操作がシンプルに書ける
- glob と rglob でファイルの検索ができる
- 削除(unlink)は元に戻せないので慎重に
まずは自分のPCの適当なフォルダで、glob を使ってファイル名を一覧表示してみましょう。
ナノトイラボ 
