Pythonで、フォルダ以下にあるjpgのexifを読み取って、写真の中にexif情報を書き込むプログラム

Pythonで写真ファイルのEXIF情報を読み取り、他の写真に書き込むためには、PillowというPython Imaging Library (PIL) のフォークライブラリを使用します。Pillowは画像処理に便利な多くの機能を提供しており、EXIF情報の読み書きもサポートしています。

以下の手順に従って、PythonプログラムでPillowを利用して写真のEXIF情報を読み取り、別の写真にEXIF情報を書き込むサンプルコードを示します。

  1. Pillowのインストール: まず、Pillowをインストールしてください。
pip install Pillow
  1. Pythonプログラムの作成: 以下は、Pythonプログラムのサンプルコードです。このプログラムでは、指定したフォルダ内のすべてのJPGファイルのEXIF情報を読み取り、別の指定した写真にEXIF情報を書き込みます。
from PIL import Image
import os

def read_exif(source_path):
    with Image.open(source_path) as img:
        exif_data = img.info.get('exif')
        return exif_data

def write_exif(target_path, exif_data):
    with Image.open(target_path) as img:
        exif = img.info.get('exif')
        if exif_data and exif:
            exif.update(exif_data)
        else:
            exif = exif_data
        img.save(target_path, exif=exif)

def copy_exif(source_path, target_path):
    exif_data = read_exif(source_path)
    write_exif(target_path, exif_data)

# フォルダ内のJPGファイルのリスト
folder_path = 'フォルダのパス'

# 書き込む対象の写真のパス
target_photo_path = '対象写真のパス'

for filename in os.listdir(folder_path):
    if filename.lower().endswith('.jpg'):
        source_path = os.path.join(folder_path, filename)
        copy_exif(source_path, target_photo_path)
        print(f"Copied EXIF data from {source_path} to {target_photo_path}")

このプログラムを実行すると、指定したフォルダ内のすべてのJPGファイルのEXIF情報が読み取られ、別の写真にそのEXIF情報が書き込まれます。ただし、EXIF情報が存在しない写真や対象写真のフォーマットがEXIF情報の書き込みに対応していることを確認してください。

また、プログラムを実行する前に、Pillowがインストールされていることを確認してください。