Browse Source

merge dev

Sébastien POHER 1 year ago
parent
commit
38254e418c
1 changed files with 13 additions and 21 deletions
  1. 13 21
      apee.py

+ 13 - 21
apee.py

@@ -4,6 +4,7 @@
 import mimetypes
 import threading
 import os
+import csv
 from tkinter import *
 from tkinter import filedialog, messagebox
 from datetime import datetime
@@ -389,18 +390,13 @@ de la bonne fin des opérations")
 
         def write_tags():
             """Fonction principale d'export des tags dans un fichier"""
-            # Création d'un descripteur de fichier permettant d'ouvrir un fichier relativement à un répertoire donné
-            dir_fd = os.open(img_dir, os.O_RDONLY)
-
-            def opener(path, flags):
-                return os.open(path, flags, dir_fd=dir_fd)
 
             # Ouverture du fichier listing.csv dans le dossier 'img_dir'
-            with open("listing.csv", 'w', opener=opener) as f:
+            with open(img_dir+"/listing.csv", 'w', newline='') as f:
+                listing_csv = csv.writer(f, delimiter=',')
                 # On passe chaque photo en revue
                 for photo in photos_list:
                     photo_tags_list = []
-                    photo_tags_list.append(photo)
                     metadata = pyexiv2.ImageMetadata(photo)
                     metadata.read()
                     # On vérifie que les tags demandés existent bien dans les photos
@@ -410,21 +406,17 @@ de la bonne fin des opérations")
                                 "Exif.Photo.UserComment"]:
                         # Si oui on insère leur valeur dans une liste...
                         if tag in metadata.exif_keys:
-                            if tag == "Exif.Photo.DateTimeOriginal":
-                                old_date = metadata[tag].value
-                                new_date = datetime.strptime(
-                                    str(old_date), '%Y-%m-%d %H:%M:%S').strftime(
+                             if tag == "Exif.Photo.DateTimeOriginal":
+                                 old_date = metadata[tag].value
+                                 new_date = datetime.strptime(
+                                     str(old_date), '%Y-%m-%d %H:%M:%S').strftime(
                                         '%d/%m/%Y %H:%M:%S')
-                                photo_tags_list.append(new_date)
-                            else:
-                                photo_tags_list.append(metadata[tag].value)
-                    for i in photo_tags_list:
-                        # Que l'on parcourt pour écrire chaque dans le fichier ouvert
-                        print(i, end=";", file=f)
-                    # Retour à la ligne forcé entre chaque photo
-                    print("", file=f)
-            # Et on ferme proprement notre descripteur de fichier
-            os.close(dir_fd)
+                                 photo_tags_list.append(new_date)
+                             else:
+                                 photo_tags_list.append(metadata[tag].value)
+                    listing_csv.writerow([os.path.dirname(photo)] +
+                                         [os.path.basename(photo)] +
+                                         photo_tags_list)
             messagebox.showinfo("Export CSV", "Export des métadonnées vers listing.csv terminé.")
 
         # Création d'un thread parallèle pour que l'application ne paraisse pas "freezée" lors de longs exports