mrenom.py
Script Python qui renomme les fichiers en masse dans un dossier ( et sous dossiers selon l'option choisi )
Bon pour la petite histoire -> J'en avais marre et je suis feignante , de tout les noms de fichiers qui ne veulent rien dire ... ( IMG_8042.jpg, [www.Cpasbien.me] Defiance.S01E03.FASTSUB.VOSTFR.HDTV.XviD-F4ST , etc)
Alors je me suis faite un petit script
Celui ci permet de renommer tout les fichiers d'un dossier , de supprimer certaine partie de nom de fichier ....etc
exemples:
Tous les fichiers du dossier 05.2013 sont renommés ( 05.2013_n°1.jpg, 05.2013_n°2.jpg ...ect )
Tous les fichiers et dossiers contenant [www.Cpasbien.me] sont renommés sans le [www.Cpasbien.me] . (trés pratique notament pour les extensions du genre "VOSTR.XviD"
Utilisation :
mrenom.py nouveauNom # Renomme tous les fichiers du dossier mrenom.py -r nouveauNom # renomme recursivement (même dans sous dossiers) mrenom.py -d nouveauNom # Pareil mais en renommant les dossiers aussi mrenom.py -s [www.Cpasbien.com] # Supprimera recursivement [www.Cpasbien.com] de tous les noms des fichiers
Code source :
#!/usr/bin/python # -*-coding:utf-8-* import os, sys from os import chdir nombreArgs = len(sys.argv) chemin, cheminAbsolu = [], [] i = 0 chemin.append(os.getcwd()) if (nombreArgs == 1) or (nombreArgs > 3) or (sys.argv[1] == '-help'): print ("""Utilisation : mrenom.py nouveauNom -> Renomme tous les fichiers du dossier mrenom.py -r nouveauNom -> renomme recursivement (même dans sous dossiers) mrenom.py -d nouveauNom -> Pareil mais en renommant les dossiers aussi mrenom.py -s [www.Cpasbien.com] -> Supprimera recursivement [www.Cpasbien.com] \\t\\t\\t\\tdu nom de chaque fichiers et dossiers""") def rechercheSousDossiers(fichiers, i, argument): for fichier in fichiers: if os.path.isdir(fichier) == True: print "Le dossier ->"+fichier+" est traité" if os.path.abspath(fichier) in chemin: pass else: chemin.append(os.path.abspath(fichier)) else: i += 1 renomFichiers(fichier, i, argument) def renomFichiers(fichier, i, argument): if (sys.argv[1] == '-s'): sys.argv[2], fichier = sys.argv[2], fichier newName = fichier.replace(sys.argv[2], '') os.rename(fichier, newName.replace(' ', '')) if (sys.argv[1] != '-s'): if (fichier[-4:].lower() == '.jpg') or (fichier[-4:].lower() == '.png'): os.rename(fichier, "{0}_n°{1}{2}".format(argument, i, fichier[-4:])) if (nombreArgs == 2) or (nombreArgs == 3) : for emplacement in chemin: chdir(emplacement) fichiers = os.listdir(emplacement) if nombreArgs == 2: for fichier in fichiers: i += 1 renomFichiers(fichier, i, sys.argv[1]) else: rechercheSousDossiers(fichiers, i, sys.argv[2]) if (sys.argv[1] == '-s') or (sys.argv[1] == '-d'): chemin.remove(chemin[0]) chemin.reverse() for emplacement in chemin: path = emplacement.rstrip(os.path.basename(emplacement)) if os.path.isdir(path+sys.argv[2]) == True: i += 1 os.rename(emplacement, path+sys.argv[2]+str(i)) elif (sys.argv[1] == '-s'): newNameDossier = os.path.basename(emplacement).replace(sys.argv[2], '') os.rename(emplacement, path+newNameDossier.replace(' ', '')) else : os.rename(emplacement, path+sys.argv[2])