sakemoto-san

ITエンジニアがWebサービス全般について書いていきます。

PythonでExifをいじる

exifreadというライブラリが有名らいし.githubにもあるし,pipでも入る. EXIF付きのファイルをopenして,process関数に渡すと,EXIFに含まれるtag, keyをパースしてくれる.

これを利用して,flickrから落としてた写真のファイル名のプレフィックスに日時を入れてソートするためにコーディングした.

import exifread
import sys
import os

'''
Inserting taken-date-time at the beggining of base filename.
'''

def getTakenDateTime(filename):
    with open(filename) as f:
        tags = exifread.process_file(f)

        for tag in tags.keys():
            if  'DateTimeOriginal' in tag:
                #print 'key=%s, val=%s' % ( tag, tags[tag] )
                datetime='%s' % tags[tag]
                datetime=datetime.replace(':', '')
                datetime=datetime.replace(' ', '_')
                return datetime

if __name__ == '__main__':
    for i in sys.argv[1:]:
        basename = os.path.basename(i)
        dirname = os.path.dirname(i)
        datetime = getTakenDateTime(i)
        src = i
        dst = '%s/%s_%s' % (dirname, datetime, basename )
        print basename, dst
        os.rename(src, dst)