Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- file move
- 대전 업힐
- VBA
- exifread
- swift html parser
- Exif
- kanna html parser
- EXIF data
- python
- euc-kr
- mdb table 합치기
- dataset
- StreamReader
- 노은
- 스위프트
- 자전거
- kanna parser
- 파이썬
- swift
- MDB
- 대전 자전거
- 달력
- 유성
- 엑셀
- 대전
- insert into
- C#
- Xcode
- html parser
- 딴지일보 자유게시판 파씽
Archives
- Today
- Total
Fly to the sky & Return
Exfread를 이용한 EXIF data 추출 및 날짜별 폴더 생성해서 사진 옮기기 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
기존에 만들었던 코드는 PIL 를 이용해서 EXIF data를 추출해쓴뎅 2.7버전에서만 작동을 하는듯해서 3.6 버전에서도 동작가능한 넘으로 다시 만들어 봤습니당
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 73 74 75 | from tkinter import Tk from tkinter import filedialog import os import exifread import time import datetime DT_TAGS = ["Image DateTime", "EXIF DateTimeOriginal", "DateTime"] DEBUG = 0 def get_exif_date_exif(path): """return EXIF datetime using exifread (formerly EXIF)""" dt_value = None f = open(path, 'rb') try: tags = exifread.process_file(f) if DEBUG: print('tags cnt: %d' % len(tags)) print('\n'.join(tags)) for dt_tag in DT_TAGS: try: dt_value = '%s' % tags[dt_tag] if DEBUG: print('%s: %s' % (dt_tag, dt_value)) break except: continue if dt_value: exif_time = time.strptime(dt_value + 'UTC', '%Y:%m:%d %H:%M:%S%Z') return exif_time finally: f.close() return None #return 날짜 데이터가 2010-10-1 요런 형식이여서 2010-10-01로 바꾸는 함수 def day_check(exif_day): if len(str(exif_day.tm_mday)) == 1: day = "0"+ str(exif_day.tm_mday) else: day = str(exif_day.tm_mday) return day root = Tk() root.withdraw() myPath = filedialog.askdirectory() for f in os.listdir(myPath): k=f.lower() total_path = myPath +'/'+ k exif_time = get_exif_date_exif(total_path) dday = day_check(exif_time) exif_date = str(exif_time.tm_year)+"_"+str(exif_time.tm_mon) +"_"+ dday if not os.path.exists(myPath+'/'+exif_date): os.makedirs(myPath+'/'+ exif_date) old_file = os.path.join(myPath, k) new_file = os.path.join(myPath+'/'+ exif_date, k) os.rename(old_file, new_file) | cs |
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬으로 엑셀 다루기.......2 엑셀로 달력을 만들어보자.. (0) | 2017.12.28 |
---|---|
파이썬으로 Excel 다루기 ..........1 (0) | 2017.12.22 |
파이선 날짜 각 항목에 접근하기 (0) | 2017.12.19 |
[파이썬] 선택한 폴더안에 들어있는 파일을 상위폴더로 옮기기 (0) | 2015.02.12 |
[파이썬] EXIF 의 날짜 자료를 이용해서 사진이름 일관변경하기 (0) | 2015.02.08 |