Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur d' exécution suite à nouvelle version

<class 'AttributeError'>: 'ExifTool' object has no attribute 'get_tag'

Sujet résolu
    22 octobre 2022 à 14:08:50

    Bonjour,
    Depuis 3 ans, j' utilise un script Python lancé depuis LibreOffice Base. Ce script me permet de récupérer les données exif d' une photo, de les enregistrer et de classifier mes prises de vues.
    Suite à une mise à jour d' Exif vers la version :

    libimage-exiftool-perl_12.48+dfsg-1_all.deb

    je rencontre un problème dans l' utilisation de ce script. Le message d' erreur est le suivant:

    <class 'AttributeError'>: 'ExifTool' object has no attribute 'get_tag'

    Le script s' arrête sur la ligne de commande suivante:

    with exiftool.ExifTool() as e:
            marque = e.get_tag('Make',cheminphoto)

    Malgré toutes mes recherches, je n' arrive pas à trouver la solution à ce problème.

    Par avance, merci de votre coup de main.
    Cordialement



    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2022 à 17:01:49

      Salut,

      J'ai également eu ce problème, il y a qq temps.

      Pour y remédier je ne suis pas passé par ExifTool() mais ExifToolHelper() avec la méthode .get_tags().

      Cette méthode retourne une liste d'un ou plusieurs dictionnaires en fonction des paramètres.

      Exemple :

      from exiftool import ExifToolHelper
      
      with ExifToolHelper() as et:
          file_size = et.get_tags("vitale.jpg", "FileSize")
      print(file_size)
      [{'SourceFile': 'vitale.jpg', 'File:FileSize': 158777}]
      with ExifToolHelper() as et:
          datas = et.get_tags(["vitale.jpg","thorm.png"] , ["ExifImageWidth", "ExifImageHeight", "FileSize"])
      print(datas)
      [{'SourceFile': 'vitale.jpg', 'EXIF:ExifImageWidth': 1280, 'EXIF:ExifImageHeight': 803, 'File:FileSize': 158777}, {'SourceFile': 'thorm.png', 'File:FileSize': 105198}]






      • Partager sur Facebook
      • Partager sur Twitter
        22 octobre 2022 à 17:52:33

        Bonsoir,

        Merci de votre réponse. Effectivement, le résultat est bon. Toutefois, il faut retravailler les listes et dictionnaires pour en sortir l' élément rechercher.

        Peut-on réduire les informations retournées à la seule recherchée, par exemple constructeur de l' appareil?

        Cordialement

        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2022 à 18:32:56

          Oui je pense que le tag Make et Model sont toujours présents.
          • Partager sur Facebook
          • Partager sur Twitter
            22 octobre 2022 à 18:47:47

            Bonsoir,

            Merci de votre réponse. Effectivement, le résultat est bon. Toutefois, il faut retravailler les listes et dictionnaires pour en sortir l' élément rechercher.

            Peut-on réduire les informations retournées à la seule recherchée, par exemple constructeur de l' appareil?

            Cordialement

            • Partager sur Facebook
            • Partager sur Twitter
              22 octobre 2022 à 19:10:04

              Oui,

              Toujours dans la même idée, on accède à la liste puis on extrait la valeur de la clé "EXIF:Make"

              with ExifToolHelper() as et:
                  datas = et.get_tags("photo.jpg" , "Make")
              constructeur = datas[0]["EXIF:Make"]
              print(constructeur)
              samsung

              Après, je n'ai pas essayé d'aller plus loin avec cette MAJ (j'étais dans l'urgence) mais il y a peut-être moyen d'obtenir le même résultat de manière plus simple.





              • Partager sur Facebook
              • Partager sur Twitter
                22 octobre 2022 à 20:26:33

                Bonsoir,

                C' est parfait. En fait, j' étais arrivé à ce résultat mais en passant par une variable supplémentaire. Prenant du retard dans le classement de mes photos, je n' ai pas pris le temps de me pencher dans la doc. Mea culpa.

                Encore merci de votre aide qui m' à permis de résoudre ce problème.

                Cordialement

                • Partager sur Facebook
                • Partager sur Twitter
                  22 octobre 2022 à 22:00:26

                  El_Catala a écrit:

                  Bonsoir,

                  C' est parfait. En fait, j' étais arrivé à ce résultat mais en passant par une variable supplémentaire. Prenant du retard dans le classement de mes photos, je n' ai pas pris le temps de me pencher dans la doc. Mea culpa.

                  Encore merci de votre aide qui m' à permis de résoudre ce problème.

                  Cordialement


                  Après, on peut toujours extraire la donnée en une seule fois :

                  with ExifToolHelper() as et:
                      constructeur = et.get_tags("photo.jpg" , "Make")[0]["EXIF:Make"]

                  ou

                  with ExifToolHelper() as et:
                      constructeur = et.get_metadata("photo.jpg")[0]["EXIF:Make"]




                  • Partager sur Facebook
                  • Partager sur Twitter

                  Erreur d' exécution suite à nouvelle version

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown