Bonjour,

Je suis débutante en python.
Je dois remplacer les accents par des lettres non accentués dans le nom de plusieurs fichiers d'un dossier.
Pour cela j'ai cherché la réponse sur plusieurs forum, j'en ai trouvé une qui me semblait bonne et je l'ai adapté à mon cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import os, re
wksp = r"C:\stagiaire\Photos" # chemin des photos
 
def supprime_accent(wksp):
        """ supprime les accents du texte source """
        accents = { 'a': ['à', 'ã', 'á', 'â'],
                    'e': ['é', 'è', 'ê', 'ë'],
                    'i': ['î', 'ï'],
                    'u': ['ù', 'ü', 'û'],
                    'o': ['ô', 'ö'] }
 
        for (char, accented_chars) in accents.iteritems(): # Recuperation des données de accents
            for dirname, subdirs, files in os.walk(wksp):   # Boucle sur chaque fichier du dossier wksp et ses sous-dossiers
                for nom in files:                           # Recupération de tous les noms de fichiers
                    for accented_char in accented_chars:            # Pour chaque accent
                        nomch = nom.replace(accented_char, char)    # Remplacement dans le nom des accents par les lettres correspondantes
        return nomch
supprime_accent(wksp)
print "script ok"
Or cela ne fonctionne pas aucun de mes noms de fichier est modifié et il n'y a pourtant aucun message d'erreur. Pour trouver le problème j'ai effectué des print à toutes les étapes. Par cette méthode j'arrive à récupérer les noms de mes fichiers, les caractères accentués, les équivalents non accentués. Mais quand je fait print nomch je n'obtiens qu'un nom de fichier.
Je suis bloquée pourriez-vous m'aider s'il-vous-plaît.

Merci d'avance pour votre aide.