1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| # -*- coding: utf-8 -*-
import os
import unicodedata
import re
print u"\nCe script sert à remplacer:"
print u"- les lettres accentuées par des lettres nons accentuées"
print "- les espaces par des underscores (_)"
print "- les lettres capitales par des lettres minuscules\n"
print u"Les sous-dossiers sont aussi impactés\n"
print "Pour quitter le programme, tapez 'quitter'\n"
print "ATTENTION LE DOSSIER A TRAITER NE DOIT PAS COMPORTER D'ACCENT\n"
def suppr_accent_fichiers(chemin):
for dossier, sous_dossiers, fichiers in os.walk(chemin): # Boucle sur chaque fichier du dossier chemin et ses sous-dossiers
for fichier in fichiers: # Recupération de tous les noms de fichiers
nomini= os.path.join(dossier, fichier)
fichier = unicodedata.normalize('NFD', fichier).encode('ascii', 'ignore')
fichier = fichier.lower()
fichier = re.sub('[^a-zA-Z0-9\.]', '_', fichier) # remplacer tous les caractères spéciaux par underscore
while "__" in fichier: # éviter qu'il y ait deux underscores à suivre dans les noms de fichiers
fichier = fichier.replace ("__", "_")
os.rename (nomini, os.path.join(dossier, fichier))
return
def suppr_accent_dossiers(chemin):
for dossier, sous_dossiers, fichiers in os.walk(chemin): # Boucle sur chaque sous-dossier du dossier chemin
for sous_dossier in sous_dossiers: # Recupération de tous les noms de sous-dossier
sous_dossierini= os.path.join(dossier, sous_dossier)
sous_dossier = unicodedata.normalize('NFD', sous_dossier).encode('ascii', 'ignore')
sous_dossier = sous_dossier.replace (" ", "_")
sous_dossier = re.sub('[^a-zA-Z0-9 \n\.]', '_', sous_dossier)
sous_dossier = sous_dossier.lower()
os.rename (sous_dossierini, os.path.join(dossier, sous_dossier))
return
chemin = raw_input("Quel est le chemin du dossier contenant les fichiers que vous voulez changer: ")
chemin = chemin.decode('utf-8') # pour remplacer les accents des fichiers
if chemin=="quitter":
quit()
while not os.path.exists(chemin):
print u"Le dossier indiqué n'existe pas"
chemin = raw_input("Quel est le chemin du dossier contenant les fichiers que vous voulez changer: ")
chemin = chemin.decode('utf-8') # pour remplacer les accents des fichiers
if chemin=="quitter":
break
else:
print "\nen cours..."
suppr_accent_fichiers(chemin)
suppr_accent_dossiers(chemin)
print u"Le script s'est déroulé avec succès" |
Partager