Forum général.cherche-logiciel repérer et supprimer les images en plusieurs exemplaires (digikam, imgSeek...)

Posté par (page perso) .
Tags : aucun
1
20
déc.
2008
Bonjour

Avec Digikam, imgSeek, gQview... je peux facilement trouver les images en double sur ma partoche de 140 Go. Il doit à peu près y avoir environ 50Go d'images en doubles, si ce n'est plus.

Par contre, ces images sont toujours triées ensembles, alors je dois cliquer une image sur deux dans la liste des doublons... c'est vite fastidieux.

J'aurai bien voulu un truc à la ligne de commande, ou les images en surplus d'un côté...

Bien entendu, toutes les images ont des noms différents.

Merci.
Grégoire
  • # somme de contrôle ?

    Posté par . Évalué à 1.

    Je me demande si un calcul de somme de contrôle serait efficace ?

    À défaut de vérifier le fichier entier, se cantonner aux quelques premiers kbits pourrait peut être être plus efficace.

    Je me sens bien d'écrire un script python pour le faire.

    Donnez moi votre avis sur cette idée.
    • [^] # Re: somme de contrôle ?

      Posté par (page perso) . Évalué à 2.

      En fait, le repérage n'est pas du tout un problème.

      C'est juste qu'à la fin, les doublons sont placés à côté des images uniques, donc on ne peut pas sélectionner uniquement les images en plusieurs exemplaires (-1) pour les supprimer.

      ImgSeek est capable de créér une mini base de donnée de ces images, mais j'ai encore du mal à voir comment je pourrai m'en servir.

      Pour Digikam, c'est pareil, mais c'est probablement parce que ce sont les mêmes bibliothèques qui sont utilisées.

      Oui, dans mon cas le début des fichiers doit être identique, puisque c'est suite à une récupération de fichiers avec testdisk.

      gQview intègre aussi une somme de contrôle aux images, justement pour repérer plus vite les doublons.

      Quand on n'a qu'une dizaine d'images en double, c'est simple, mais quand ça se compte par millier, autant éviter les manipulations manuelles.

      Je dois passer à côté de quelque chose... c'est quand même curieux.

      A bientôt
      Grégoire
      • [^] # Re: somme de contrôle ?

        Posté par . Évalué à 1.

        Bonjour, j'ai écrit un script python qui supprime tous les fichier identiques (d'après leur somme de contrôle md5) sur le disque dur.

        il est disponible à cette adresse : http://pastebin.com/f70454be

        Un simple copier/collé devrait te permettre de l'utiliser.

        Ce script est basé sur Python 3, donc il faudra l'installer si tu veux utiliser ce script.

        Attention, il ne prend pas en compte le type de fichier, mais calcule une somme de contrôle sur tous les fichiers du répertoire courant. Ça peut être assez long, en fait, chez moi sur un dossier de 3Go ça a pris une ou deux minutes à peu près.

        Attention, ça fait dans le lard, les fichiers sont directement supprimés et pas déplacés vers un répertoire "Doublon". Tu pourrais coder cette fonctionnalité si tu voulais, il faut juste remplacer le
        os.remove(a_filename) par un os.rename() (voir la documentation à ce propos).

        Bon courage et bonne journée, j'espère que ça aidera tout le monde.
        • [^] # py3k ?!

          Posté par . Évalué à 1.

          > Ce script est basé sur Python 3, donc il faudra l'installer si tu veux utiliser ce script.
          "tiens, t'as qu'à te débrouiller pour installer un truc super gros et sans doute encore buggé qui pour l'instant n'est utilisé que par 3 pelés alors que j'aurais pu faire un truc qui marche direct et sans effort en plus, mais je m'en fous"

          c'est sympa de faire du python3 pour aider à debugger python, mais pour distribuer, tu pourrais éviter.
          Après, on comprend pas quand on nous dit que linux c'est pas user-friendly...
          • [^] # Re: py3k ?!

            Posté par . Évalué à 2.

            eh oh les gens, fdupes ca existe et c'est fait pour ça (et c'est dans toutes les bonnes distribution).
            Faut arreter de recréer la roue à chaque fois.

            par contre en ce qui concerne ta db, elle est sous quel format ?
            Car un script perl/sh ca peut etre très rapide à faire, et peut aider bcp ;)
            • [^] # Re: py3k ?!

              Posté par . Évalué à 3.

              ah, le nouveau script : http://pastebin.com/d45b16719

              l'ancien ne marchait pas, désolé.

              Je ne sais pas programmer en perl.
              Je ne sais pas comment utiliser des listes avec bash.
              Donc je l'ai fait en python. Python 3 parce que c'est la nouvelle version et que je voulais rapidement voir les différences avec la version 2.

              fdupes est ici :
              http://premium.caribe.net/~adrian2/fdupes.html

              je connaissais pas.
              • [^] # Re: py3k ?!

                Posté par (page perso) . Évalué à 2.

                Bonjour

                J'avais essayé d'installer python3, et il n'était pas présent dans Debian testing ni SID... j'ai failli ajouter "experimental" dans mon source-liste.

                fdupes -Nd m'a l'air correspondre exactement à ce que je cherchais.

                Peut être que j'essayerai le script en python2 pour comparer les performances. Une fois que j'aurai fait un peu de place, je dupliquerai un des gros répertoire.

                Merci
                A bientôt
                Grégoire
                • [^] # Re: py3k ?!

                  Posté par . Évalué à 2.

                  À bien y réfléchir, c'est vrai que c'était stupide de tout écrire sur une base de code python 3, mais bon ... J'ai voulu profiter des avantages de archLinux et de la distribution Rolling Release pour me la jouer :))))
          • [^] # Re: py3k ?!

            Posté par . Évalué à 2.

            c'est sympa de faire du python3 pour aider à debugger python, mais pour distribuer, tu pourrais éviter.
            Après, on comprend pas quand on nous dit que linux c'est pas user-friendly...


            J'avoue que c'est pas sympa. Je voulais tester python 3. Je me suis rendu compte que ça parchait avec py2 en remplaçant simplement le input() par raw_input()... sinon ça va ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.