Sh4n3e
[Python] PIL을 이용한 exif정보를 통해 JPG파일의 이름을 타임스탬프로 변경하기 본문
PIL을 이용하여 exif 정보를 가저온 후, 이 정보를 통해 JPG의 파일을 타임스탬프로 변경하는 프로그램이다.
exif내에 존재하는 타임스탬프 종류는 3가지로 다음과 같다.
1) DateTimeOriginal
2) DateTimeDigitized
3) DateTime
해당 이름 명이 존재하면 그 값을 가져다 return 해주어 이름을 바꿔주고
그외에 존재하지 않을 경우, 예외처리하여 바꾸지 않는 프로그램임.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #version 1.0 import os, sys from PIL import Image from PIL.ExifTags import TAGS file_list = [] cnt = 0 def filelist(path): global file_list global cnt file_list = os.listdir(path) file_list.sort() cnt = len(file_list) def get_exif(fn): ret = {} exifTimestamp = '' i = Image.open(fn) try : info = i._getexif() for tag, value in info.items(): # DateTimeOriginal DateTimeDigitized DateTime decoded = TAGS.get(tag, tag) #print decoded ret[decoded] = value try : if ret['DateTimeOriginal'] != None: exifTimestamp = ret['DateTimeOriginal'] return exifTimestamp except KeyError : print 'DateTimeOriginal Don\'t Exist' try : if ret['DateTimeDigitized'] != None: exifTimestamp = ret['DateTimeDigitized'] return exifTimestamp except KeyError: print 'DateTimeDigitized Don\'t Exist' try : if ret['DateTime'] != None: exifTimestamp = ret['DateTime'] return exifTimestamp except KeyError: print 'DateTime Don\'t Exist' except Exception as e : print e return exifTimestamp if __name__ == '__main__': #path = '/Users/leekeezz/Desktop/picture/' path = raw_input('Input Path : '); filelist(path) for i in file_list: fname, ext = os.path.splitext(i) if ext != '.jpg' and ext != '.JPG' : continue forTimestamp = path + '/' + i print forTimestamp exifTimestamp = get_exif(forTimestamp) if exifTimestamp == '': print 'This file Don\'t Exist Timestamp' else : try: exifTimestamp = exifTimestamp.replace(':', '_'); os.rename(forTimestamp, path + '/' + exifTimestamp + '.JPG') except os.error: print 'error %s' % forTimestamp print '\n' | cs |
'Programming > Python' 카테고리의 다른 글
[Python] 웹 크롤러(Web Crawler)를 제작해보자 (1) | 2018.03.13 |
---|---|
[Python] Unicode JSON을 Ascii 형태의 Dictionary로 변환 그리고 CSV로 저장하기 (0) | 2017.11.03 |
[Python] Urllib 사용법, Url 라이브러리 사용법 (0) | 2017.09.08 |
[Python] iPhone으로 찍은 사진의 Timestamp를 파일명으로 바꾸기 (0) | 2017.08.20 |
[Python] 이름만 다른 동일 파일 삭제하기 (0) | 2017.08.20 |
Comments