では 「pathlib + Pillow」で画像を一括形式変換する実践例 を紹介します。例えば「PNGを全部JPGに変換したい」といったときに役立ちます。
必要な準備
- Pillow をインストール
pip install pillow
サンプルコード:PNG → JPG に一括変換
from pathlib import Path
from PIL import Image
# 入力フォルダと出力フォルダを指定
input_dir = Path.home() / "Pictures" / "png_images"
output_dir = Path.home() / "Pictures" / "jpg_images"
# 出力フォルダがなければ作成
output_dir.mkdir(exist_ok=True)
# PNGファイルをすべて処理
for img_path in input_dir.glob("*.png"):
with Image.open(img_path) as img:
# RGBA(透過あり)の場合はRGBに変換してから保存
if img.mode in ("RGBA", "P"):
img = img.convert("RGB")
# 出力ファイル名を .jpg に変更
save_path = output_dir / (img_path.stem + ".jpg")
# JPEG形式で保存
img.save(save_path, "JPEG")
print(f"変換完了: {save_path}")
Pythonコードのポイント
img_path.stemは拡張子を除いたファイル名を取得
例:sample.png→"sample"img.convert("RGB")は透過PNGをJPEGに変換する際に必要(JPEGは透過をサポートしないため)- 出力フォルダを
mkdir(exist_ok=True)で自動作成
実行イメージ
- 入力フォルダ:
~/Pictures/png_imagesphoto1.png photo2.png - 出力フォルダ:
~/Pictures/jpg_imagesphoto1.jpg photo2.jpg
応用例
- JPG → PNG
for img_path in input_dir.glob("*.jpg"): with Image.open(img_path) as img: save_path = output_dir / (img_path.stem + ".png") img.save(save_path, "PNG") - すべての画像を 同じ形式に統一(例: Web用に全部JPEG化)
まとめ
pathlibでパス操作をシンプルにPillowで画像を開いて形式変換- 一括処理で大量の画像を一気に変換できる
次のステップとしては、「一括形式変換 + リサイズ」を組み合わせて「Web用に軽量化」するスクリプトを作ると、実用度がさらに高まります。

