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 :

zipfile nom de fichier accentués


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut zipfile nom de fichier accentués
    merci Guigui pour le code exemple d'archivage d'une arborescence de fichier dans une archive : c'est tout à fait ce que je cherchais

    malheureusement je n'arrive pas a gérer avec le module zipfile le noms de fichiers comportant des caractères accentués. J'ai tenté toutes sortes de conversion unicode/utf8/mbcs ... rien n'y fait. Un test inverse de création par WinXp d'un .zip contenant un fichier dont le nom comporte des accents, puis décompactage par python conduit à un nom de fichier incorrect!

    je sais que ce n'est pas recommandé d'utiliser des accents dans les noms de fichiers, mais je ne suis malheureusement pas maître des noms dans les arborescences à archiver.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import os
    import zipfile
    archive = zipfile.ZipFile("c:\\windows\\temp\\archive.zip", "w")
    rootdir = "L:\\20061208\\591112552"
    lenrootdir = len(rootdir) + 1
    for files in os.walk(rootdir):
        for Eachfile in files[2]:
            # print os.path.join(files[0], Eachfile)
            archive.write(os.path.join(files[0], Eachfile), u.os.path.join(files[0], Eachfile)[lenrootdir:], zipfile.ZIP_DEFLATED)
    archive.close()
    jihemD

    python 2.5 / IDLE 1.2 sur PC WinXP

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    As-tu essayé cp1252? C'est l'encodage occidental par défaut de windows

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut ZipFile nom de fichier accentué
    merci oiffriq, j'ai essayé beaucoup d'encodage mais ça ne marche pas, même sous Linux (KLA et Mandriva One) pire avec un zip créé avec WinXP contenant un fichier avec un nom avec des accents, donnera un nom de fichier eroné une fois dézippé avec Python 2.5 !!!

    va falloir attendre Python 3000 en unicode !!

Discussions similaires

  1. Noms de fichiers accentués.
    Par GérardMartinelli dans le forum Langage
    Réponses: 7
    Dernier message: 16/01/2015, 13h45
  2. [py3.2.3] ZipFile et nom de fichiers exotiques
    Par boulbi dans le forum Général Python
    Réponses: 1
    Dernier message: 17/07/2012, 16h41
  3. [Encodage] Noms de fichiers accentués dans une archive Zip
    Par micetf dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2010, 20h50
  4. Nom de fichiers accentués
    Par isildur37 dans le forum C++
    Réponses: 2
    Dernier message: 15/05/2009, 11h07
  5. [Upload] Nom de fichier avec un/des caractères accentués ?
    Par Christophe Charron dans le forum Langage
    Réponses: 11
    Dernier message: 09/06/2006, 21h46

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