Pythonでフォルダ内の画像のExif情報を一括削除する

フォルダ内の画像のExif情報を一括削除する

import os
import shutil
from PIL import Image

BEFORE_DIR = './Exif情報を削除する画像フォルダ'
RESULT_DIR = './Exif情報を削除した画像フォルダ'

for filename in os.listdir(BEFORE_DIR):
    #print(os.path.splitext(filename)[0])
    #print(os.path.splitext(filename)[0] + '_noexif' + os.path.splitext(filename)[1])
    
    # 新しいファイル名(_noexif)とつける
    result_filename = os.path.splitext(filename)[0] + '_noexif' + os.path.splitext(filename)[1]
    # ファイル名を変更しない場合はこっち
    #result_filename = filename

    img = Image.open(os.path.join(BEFORE_DIR, filename))
    data = img.getdata()
    mode = img.mode
    size = img.size

    new_img = Image.new(mode, size)
    new_img.putdata(data)
    new_img.save(os.path.join(RESULT_DIR, result_filename))

    # フォルダの移動をつかうならこれ
    #print(shutil.move(result_filename, RESULT_DIR))

フォルダ内の画像のExif情報をすべて出力

こちらサイト様のコードのclass ExifImageを用いればフォルダ内の画像のExif情報を一括で出力できます。

参考 Pythonで、写真データからExif情報を参照したり、削除するBOKUのITな日常

import os
from PIL import Image
import PIL.ExifTags as ExifTags


class ExifImage: #略

BEFORE_DIR = './Exif情報を削除する画像フォルダ'
RESULT_DIR = './Exif情報を削除した画像フォルダ'

#DIR = BEFORE_DIR
DIR = RESULT_DIR

for filename in os.listdir(DIR):
    image = ExifImage(os.path.join(DIR, filename))
    print(f'filename: {filename}')
    image.print()
    #print(image.get_gps())
    print()

削除できたかはこれで確認すると楽です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です