Last active
April 2, 2021 17:58
-
-
Save laurobmb/b433c27d939c7283b00fc7718648ed9f to your computer and use it in GitHub Desktop.
Script for photo organizer: this script organizes of files in directories "year_month_day"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from PIL import Image | |
| import os | |
| from datetime import datetime | |
| import shutil | |
| import glob | |
| class MeuOrganizador: | |
| DATETIME_EXIF_INFO_ID = 36867 | |
| extensions = ['CR2','JPG','MP4','jpg','png','jpeg','gif','PNG','mp4','mov','3gp'] | |
| def photo_shoot_data(self,file): | |
| try: | |
| photo = Image.open(file) | |
| except: | |
| date = datetime.fromtimestamp(os.path.getmtime(file)) | |
| try: | |
| info = photo._getexif() | |
| if self.DATETIME_EXIF_INFO_ID in info: | |
| date = info[self.DATETIME_EXIF_INFO_ID] | |
| date = datetime.strptime(date, '%Y:%m:%d %H:%M:%S') | |
| else: | |
| date = datetime.fromtimestamp(os.path.getmtime(file)) | |
| except: | |
| date = datetime.fromtimestamp(os.path.getmtime(file)) | |
| return date | |
| def get_folder_path(self,file): | |
| date = self.photo_shoot_data(file) | |
| return date.strftime('%Y')+'/'+date.strftime('%Y_%m_%d') | |
| def move_photo(self,file): | |
| new_folder = self.get_folder_path(file) | |
| if not os.path.exists(new_folder): | |
| os.makedirs(new_folder) | |
| shutil.move(file, new_folder+'/'+file) | |
| def organizador(self): | |
| for k in self.extensions: | |
| for name in glob.glob('*.'+k): | |
| print('Movendo arquivo =>',name) | |
| self.move_photo(name) | |
| PHOTO = MeuOrganizador() | |
| PHOTO.organizador() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment