Voici un petit script utile permettant de supprimer les fichiers en doublon dans une arborescence de dossiers :
Il est développé en python 2 est peut être lancé depuis la ligne de commande.
La détection des doublons via un hash en md5.
Code:
#!/usr/bin/python import sys from os import walk import hashlib import os def md5(fname): hash_md5 = hashlib.md5() with open(fname, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): hash_md5.update(chunk) return hash_md5.hexdigest() def main(path): f = [] for (dirpath, dirnames, filenames) in walk(path): for filename in filenames: filepath = dirpath+"/"+filename try: md5sum = md5(filepath) if md5sum not in f: f.append(md5sum) else: print "Removes "+filepath os.remove(filepath) except: print "Impossible to manage "+filepath if __name__ == "__main__": if len(sys.argv) != 2 or not os.path.isdir(sys.argv[1]): print "Usage : python "+sys.argv[0]+" path" else: main(sys.argv[1])
La détection des doublons via un hash en md5.
Commentaire