From 86deb0c7f89bde805e2794f295eb079b1692c6ab Mon Sep 17 00:00:00 2001 From: "Antonio J. Delgado" Date: Mon, 2 May 2022 14:50:37 +0300 Subject: [PATCH] fix folder date --- image_classifier/image_classifier.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/image_classifier/image_classifier.py b/image_classifier/image_classifier.py index b21dbda..7b3360c 100755 --- a/image_classifier/image_classifier.py +++ b/image_classifier/image_classifier.py @@ -73,7 +73,7 @@ class image_classifier: ''' Process a file, find faces, add EXIF information and move it to the folder of the day''' self._log.debug(f"Looking for faces in file '{file}'...") - folder = False + folder_date = None dirname = os.path.dirname(os.path.realpath(file)) filename = os.path.basename(file) if not os.access(file, os.R_OK): @@ -95,27 +95,31 @@ class image_classifier: original_date = self.metadata['Exif.Photo.DateTimeOriginal'].value self._log.debug(f"File creation time: {original_date} \ (type: {type(original_date)})") - folder = os.path.join(dirname, original_date.strftime('%Y.%m.%d'), filename) - if not folder: + folder_date = original_date.strftime('%Y.%m.%d') + if not folder_date: match = re.search(r'(?P20[0-9]{2})[\-/\._]?\ (?P[0-1]?[0-9])[\-/\._]?(?P[0-3]?[0-9])', filename) if match: - folder = f"{match.group('year')}.{match.group('month')}.{match.group('day')}" + folder_date = f"{match.group('year')}.{match.group('month')}.\ +{match.group('day')}" else: match = re.search(r'(?P[0-3]?[0-9])[\-/\._]?\ (?P[0-1]?[0-9])[\-/\._]?(?P20[0-9]{2})', filename) if match: - folder = f"{match.group('year')}.{match.group('month')}.\ + folder_date = f"{match.group('year')}.{match.group('month')}.\ {match.group('day')}" else: - folder = 'unknown-time' - self._log.debug(f"Time based folder name section '{folder}'") - new_path = os.path.join(dirname, folder) + folder_date = 'unknown-time' + folder = os.path.join(dirname, folder_date, filename) + self._log.debug(f"Time based folder name section '{folder_date}'") + new_path = os.path.join(dirname, os.path.dirname(folder)) if not os.path.exists(new_path): os.makedirs(new_path) if self.people_folder: for person in people: - person_path = os.path.join(self.people_folder, person.replace(' ', '.'), folder) + person_path = os.path.join(self.people_folder, + person.replace(' ', '.'), + folder_date) if not os.path.exists(person_path): os.makedirs(person_path) self._log.info(f"Copying file '{file}' to person '{person}' folder,\