【Python】Pillow 複数の写真のExif情報を一括で削除する方法

まくまく
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。今回は複数の写真のExif情報を一括で削除してみようと思います。



使用するのはPillow

使用するのは、画像処理ライブラリのPillow(PIL)です。ここではPillowがインストールされているのを前提として書き進めていきます。

Pillowの公式ドキュメントはこちらから(英語です。)

サンプルコード

from PIL import Image
import glob

img_files = glob.glob('*.jpg')

for file_name in img_files:

   with Image.open(file_name) as src:
    data = src.getdata()
    mode = src.mode
    size = src.size
    
   with Image.new(mode, size) as dst:
    dst.putdata(data)
    dst.save('exif_delete_'+str(file_name))

コメント

  • 「glob.glob(‘*.jpg’)」でjpgファイルを全て取得
  • 「with Image.open(file_name) as src: 〜」でExif情報を取得
  • 「with Image.new(mode, size) as dst: 〜」でファイル書き出し

これでファイルのExif情報の削除を一括で処理できました。フォルダに入っている全てのjpgファイルが自動処理されます。

※ファイルパスは指定していないので、プログラムと同じフォルダにjpgファイルを入れておく必要があります。

今回使ったwith文とは、ファイルの読み書きによく使用されるもので、close処理が省略できたり、プログラムを簡潔にすることができます。

[with構文の基本形]
with ①開始処理 as ②変数
   ③処理



タイトルとURLをコピーしました