あれば、対応する関数を実行する。match文を書くことなく、目的の関数を呼び出すことができる。このような書き方を関数型プログラミングと呼ぶ。Exif情報を日本語で読みやすい形式に変換する関数を、タグの数だけ用意する。Exifタグデータがセットされて呼ばれる。戻り値は、読みやすい形式のExifデータ(文字列)である。_getExif関数で取り出されるGPS情報は、リストには次の形でGPSLatitudeRef....緯度の基準。N(北)またはS(南)が入っている。GPSLatitude....緯度。リストに、度、分、秒の順に入っている。GPSLongitudeRef....緯度の基準。E(東)またはW(西)が入っている。リストに、度、分、秒の順に入っている。GPSAltitudeRef....高度の基準。GPSAltitude....高度。GPSTimeStamp....撮影時のUTC時間。時、分、秒が空白で区切られた文字列。GPSDateStamp....撮影時のUTC日付。年、月、日が空白で区切られた文字列。要素が4個を超えているならば、上述の通り、緯度、経度の値はリストに度、分、秒の順に入っているので、for文を使って1つずつ取りだし、度の小数に変換して変数に格納する。フォーマット文字列を使って日本語で読みやすい形に変換する。要素が5個を超えているならば、高度の基準、高度が格納されているので、これらをフォーマット文字列を使って日本語で読みやすい形に変換する。撮影時のUTC時間、UTC日付は読み飛ばす。Exif情報はリードオンリーで、変更することができない。piexifをインストールする。インストールしていない方は、pipコマンドを使ってインストールしてほしい。同じようなファイルダイアログを表示するので、Exif情報を削除したい画像ファイルを1つ選択する。Exif情報のチェックボックスにチェックを入れ、[削除]ボタンをクリックする。追加した画像ファイルとして保存する。同名ファイルがあれば上書きしない(保存しない)。======================================================プログラムの流れが分かるよう、メイン・プログラムから説明する。Exif情報を削除したい画像ファイルを選択する。次に、出力ファイル名を作成する。これらは、前回と同じ処理なので説明は省略する。次に、Tkinterダイアログを使って、削除したいExif情報の選択ダイアログを作成する。使うのは前回と同じだ。最後に例外処理を行う。Tkinterダイアログ上に削除したいExifタグを選択するチェックボックスと、実行ボタンを配置する関数である。二重構造になっている。外側のキー値は、ダイアログに表示するラベル名である。Exifタグ名をリストで格納しておく。「位置情報」を選んだときには、GPS情報の緯度、経度、高度の3つすべてを削除したいので、このようなリスト構造にしてある。Tkinterダイアログへの部品の配置は前回説明した通りだ。このプログラムを改造して、削除チェックボックスを増減しやすいように、for文を使ってチェックボックスを並べるようにした。