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 :

Dézip faq : fonctionne pas


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut Dézip faq : fonctionne pas
    Je sais pas si c'est moi qui c'est pas utiliser :
    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
    20
    21
    22
    23
    import zipfile
    import os.path
    import os
    import glob
     
    def dezip(filezip, pathdst = ''):
        if pathdst == '': pathdst = os.getcwd()  ## on dezippe dans le repertoire locale
        zfile = zipfile.ZipFile(filezip, 'r')
        for i in zfile.namelist():  ## On parcourt l'ensemble des fichiers de l'archive
            print i
            if os.path.isdir(i):   ## S'il s'agit d'un repertoire, on se contente de creer le dossier
                try: os.makedirs(pathdst + os.sep + i)
                except: pass
            else:
                try: os.makedirs(pathdst + os.sep + os.path.dirname(i))
                except: pass
                data = zfile.read(i)                   ## lecture du fichier compresse
                fp = open(pathdst + os.sep + i, "wb")  ## creation en local du nouveau fichier
                fp.write(data)                         ## ajout des donnees du fichier compresse dans le fichier local
                fp.close()
        zfile.close()
     
    dezip('pack.zip', 'U:\\Model')
    l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "Z:\Documents and Settings\tsimoju1\Desktop\l2l\source\testpatch.py", line 23, in <module>
        dezip('packl2l.zip', 'U:\\Model')
      File "Z:\Documents and Settings\tsimoju1\Desktop\l2l\source\testpatch.py", line 18, in dezip
        fp = open(pathdst + os.sep + i, "wb")  ## creation en local du nouveau fichier
    IOError: [Errno 2] No such file or directory: 'U:\\Model\\system/
    dans le zip il y a un fichier system, il est recreer dans le dossier U:/model mais il ne veut quand meme pas rentrer dedans =(

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 99
    Par défaut
    C'est le '/' final dans la variable "i" qui génère ton erreur.

    A mon avis, il est la pour identifier l'objet comme un répertoire et non comme un fichier.
    Si tu regardes ton code, "system" doit être un répertoire, mais tu passes dans la partie de code qui est sensé traiter les fichiers.

    Tu devrais remplacer "if os.path.isdir(i)" par "i.endswith('/')" ou un truc dans le genre et ca devrait mieux se comporter.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Par défaut
    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
    def dezip(filezip, pathdst = ''):
        if pathdst == '': pathdst = os.getcwd()  ## on dezippe dans le repertoire locale
        zfile = zipfile.ZipFile(filezip, 'r')
        for i in zfile.namelist():  ## On parcourt l'ensemble des fichiers de l'archive
            print i
            if i.endswith('/'):   ## S'il s'agit d'un repertoire, on se contente de creer le dossier
                try: os.makedirs(pathdst + os.sep + i)
                except: pass
            else:
                try: os.makedirs(pathdst + os.sep + os.path.dirname(i))
                except: pass
                data = zfile.read(i)                   ## lecture du fichier compresse
                fp = open(pathdst + os.sep + i, "wb")  ## creation en local du nouveau fichier
                fp.write(data)                         ## ajout des donnees du fichier compresse dans le fichier local
                fp.close()
        zfile.close()
    Comme ce si sa marche super, sa serait cool de corriger la FAQ

    Merci Shadow

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les exemples de la FAQ ne fonctionnent pas ?
    Par membreComplexe12 dans le forum Qwt
    Réponses: 9
    Dernier message: 01/06/2011, 00h00
  2. [AC-2007] Fonction inhiber touche MAJ de la FAQ ne fonctionne pas
    Par higins dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/09/2009, 13h38
  3. Réponses: 0
    Dernier message: 21/07/2009, 13h35
  4. [CSS] [FAQ] Pourquoi text-align ne fonctionne pas sur les éléments de type SPAN
    Par Lost In Translation dans le forum Contribuez
    Réponses: 1
    Dernier message: 11/12/2008, 10h30
  5. Réponses: 22
    Dernier message: 23/05/2007, 17h08

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