では 「pathlib + Pillow」でフォルダ内の画像を一括リサイズする実践例 を紹介しますね。これを使えば、例えば「大きな写真を全部まとめてサムネイル化する」といった処理が一気にできます。
必要な準備
- Python に Pillow をインストールしておきます
pip install pillow
サンプルコード
from pathlib import Path
from PIL import Image
# 入力フォルダと出力フォルダを指定
input_dir = Path.home() / "Pictures" / "originals"
output_dir = Path.home() / "Pictures" / "resized"
# 出力フォルダがなければ作成
output_dir.mkdir(exist_ok=True)
# リサイズ後のサイズ(幅×高さ)
size = (300, 300)
# jpg と png を対象に処理
for img_path in input_dir.glob("*.[jp][pn]g"): # jpg, jpeg, png をまとめて対象
with Image.open(img_path) as img:
# サムネイルを作成(アスペクト比を保ったまま縮小)
img.thumbnail(size)
# 出力先のパスを作成
save_path = output_dir / img_path.name
# 保存
img.save(save_path)
print(f"リサイズ完了: {save_path}")
Pythonコードのポイント
Path.glob("*.jpg")で拡張子を指定して検索img.thumbnail(size)で 縦横比を保ったまま縮小- 出力フォルダを
mkdir(exist_ok=True)で自動作成 - 元のファイル名をそのまま使って保存
実行イメージ
- 入力フォルダ:
~/Pictures/originalsphoto1.jpg photo2.png photo3.jpeg - 出力フォルダ:
~/Pictures/resizedphoto1.jpg (300px以内に縮小) photo2.png (300px以内に縮小) photo3.jpeg (300px以内に縮小)
まとめ
pathlibでパス操作をシンプルにPillowで画像を開いてリサイズ- フォルダ内の画像を一括処理できる
これを応用すれば「一括で画像形式を変換(例: PNG → JPG)」や「ウォーターマークを追加」なんかもできます。

