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 :

zip file extraction


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 72
    Par défaut zip file extraction
    Bonjour, je cherche à extraire les fichiers d'un fichier zip en utilisant python. De plus ce fichier aurait la possibilité d'avoir un mot de passe. J'ai donc commencer un programme que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import zipfile
     
    def extractFile(zFile, password):
        zipfile.ZipFile.extractall(zFile,password)
    grace à la doc, j'ai trouvé ca concernant extractall:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     def extractall(self, path=None, members=None, pwd=None):
            """Extract all members from the archive to the current working
               directory. `path' specifies a different directory to extract to.
               `members' is optional and must be a subset of the list returned
               by namelist().
            """
            if members is None:
                members = self.namelist()
     
            for zipinfo in members:
                self.extract(zipinfo, path, pwd)
    (voici le lien du code source complet http://www.tracertemp.com/vdharan/to...Lib/zipfile.py)

    Cependant je ne comprends pas trop comment faire pour corriger mon programme et je ne trouve rien me renseignant sur Internet.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 72
    Par défaut
    j'ai également testé cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def extractFile(zFile, password):
        zfile = zipfile.ZipFile('zFile')
        zipfile.ZipFile.extractall(zfile, None, None, password)
    mais j’obtiens l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Traceback (most recent call last):
      File "C:\Users\axel.ch\Desktop\crackweb python 3\crackzip\dezip.py", line 17, in <module>
        extractFile('test.zip', 'a21101998')
      File "C:\Users\axel.ch\Desktop\crackweb python 3\crackzip\dezip.py", line 6, in extractFile
        zipfile.ZipFile.extractall(zfile, None, None, str('a21101998'))
      File "C:\Users\axel.ch\AppData\Local\Programs\Python\Python35-32\lib\zipfile.py", line 1347, in extractall
        self.extract(zipinfo, path, pwd)
      File "C:\Users\axel.ch\AppData\Local\Programs\Python\Python35-32\lib\zipfile.py", line 1335, in extract
        return self._extract_member(member, path, pwd)
      File "C:\Users\axel.ch\AppData\Local\Programs\Python\Python35-32\lib\zipfile.py", line 1397, in _extract_member
        with self.open(member, pwd=pwd) as source, \
      File "C:\Users\axel.ch\AppData\Local\Programs\Python\Python35-32\lib\zipfile.py", line 1244, in open
        raise TypeError("pwd: expected bytes, got %s" % type(pwd))
    TypeError: pwd: expected bytes, got <class 'str'>

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    En général, l'erreur "pwd: expected bytes, got <class 'str'>" signifie qu'il faut explicitement passer des Bytes:
    i.e. écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zipfile.ZipFile.extractall(zfile, pwd=b"a21101998")
    plutôt que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zipfile.ZipFile.extractall(zfile, pwd="a21101998")
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 72
    Par défaut
    merci cela fonctionne

Discussions similaires

  1. [PHPExcel] Format du fichier invalide + Impossible de fermer zip file
    Par beegees dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/12/2012, 14h12
  2. Réponses: 4
    Dernier message: 02/12/2010, 14h38
  3. Download the Android SDK corrupt zip file
    Par zeavan dans le forum Android
    Réponses: 9
    Dernier message: 06/04/2010, 08h45
  4. java.util.zip.ZipException: error in opening zip file
    Par stephane.combes dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 21/12/2009, 11h09
  5. ZipException : error in opening zip file
    Par pippou dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/06/2007, 21h32

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