IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème encodage des noms de fichiers


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut problème encodage des noms de fichiers
    Bonjour à tous,
    je suis en train d'écrire un petit programme qui me copie automatiquement tous les fichiers d'un répertoire vers un autre, ça marche, sauf s'il tombe sur un nom de fichier contenant des accents.

    J'ai une fonction qui me récupère tous les fichiers d'un répertoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def listdirectory(path):
        directory=[]
        for root, dirs, files in os.walk(path):
            for i in files:
                directory.append(os.path.join(root, i))
        return directory
    ensuite je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for file in listdirectory('/rep1'):
        destfile = '/rep2' + file.split('/rep1')[1]
        shutil.copyfile (file, destfile)
    et j'obtiens une erreur avec par exemple le fichier appelé : 'évaluation.doc' :

    IOError: [Errno 2] Aucun fichier ou répertoire de ce type: "/rep2/\xe9valuation.doc"

    En vous remerciant
    Pascal

  2. #2
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Le problème vient du fait que les noms sont gérés en Unicode en interne, pour remédier à ça un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file.split('/rep1')[1].encode('utf-8')
    et ça devrait rouler (UTF-8 ou autre encodage selon celui de l'OS)

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    avec :
    ça ne marche pas, j'ai essayé d'autres encodages 'ascii', 'latin1',... rien n'a marché.

    Mais j'ai trouvé une instruction pour contourner le problème :
    Merci quand même.
    Pascal

Discussions similaires

  1. [MySQL -> PostgreSQL] Problème d'encodage des noms de tables
    Par Cafeinoman dans le forum Migration
    Réponses: 3
    Dernier message: 17/01/2014, 13h40
  2. Réponses: 2
    Dernier message: 26/01/2012, 15h43
  3. Problème d'encodage des noms de fichiers
    Par fort88 dans le forum Langage
    Réponses: 3
    Dernier message: 14/04/2009, 16h36
  4. [Zip] encodage des noms de fichiers
    Par xorax dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/01/2008, 02h17
  5. Réponses: 2
    Dernier message: 19/12/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo