2017/10/15

Python で EXIF の一覧ファイルを作る

撮影傾向を調べるのに EXIF の一覧ができればなと思いはじめて、Python でできるかなってやってみました。EXIF.py (sudo pip install exifread) を使って、

./exiflist.py *.JPG

とすると1ファイルに付き一行に

ファイル名,撮影日時,カメラ,レンズ,焦点距離,シャッター速度,F値

が出てきます。メーカーごとに違う部分(Makernote)を読めていないので、レンズ名はカメラによって出ませんが、とりえあずできました。Makernote を読むにはhttps://github.com/liberation/pyexiv2 がよさそうです。


#!/usr/bin/python

import exifread
from sys import argv

for filename in argv:
        if filename == argv[0]:
                continue

        # Open image file for reading (binary mode)
        f = open(filename, 'rb')

        # Return Exif tags
        tags = exifread.process_file(f)
        f.close()

        datetime = "1900/1/1 00:00:00"
        camera = ""
        lens = ""
        focallength = 0
        exposuretime = 0
        fnumber = 0

        DumpAll = False
        # DumpAll = True

        for tag in tags.keys():
            if tag == 'Image DateTime':
                datetime = tags[tag]
            if tag == 'Image Model':
                camera = tags[tag]
            if tag == 'EXIF LensModel':
                lens = tags[tag]
            if tag == 'EXIF FocalLength':
                focallength = tags[tag]
            if tag == 'EXIF ExposureTime':
                exposuretime = tags[tag]
            if tag == 'EXIF FNumber':
                fnumber = tags[tag]
            if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', 'EXIF MakerNote'):
                if DumpAll:
                        print "'%s'='%s'" % (tag, tags[tag])

        print "'%s','%s','%s','%s',%s,%s,%s" % (filename, datetime, camera, lens, focallength, exposuretime, fnumber)


0 件のコメント:

コメントを投稿