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])

