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 :

Extraire un RAR avec Patoolib : TypeError


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut Extraire un RAR avec Patoolib : TypeError
    Bonjour, j'ai un probleme avec patoolib pour extraire le contenu d'un fichier rar.
    J'utilise bien des chemins absolu, l'erreur est bizarre... Aidez moi svp
    Et e module est a jour : Requirement already up-to-date: patool in c:\users\theo\anaconda3\lib\site-packages
    Code Python : 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 patoolib
    def unzip(filezip = "C:/Users/Anon/Desktop/1300001717.rar"):
        #check l'extention
        dirname = os.path.split(filezip)[0] + '/tmpData'
        if not os.path.exists(dirname):
            os.makedirs(dirname)
        ext = os.path.split(filezip)[1].split('.')[-1]
     
        if ext == 'rar':
            #with rarfile.RarFile(filezip) as opened_rar:
            #    for f in opened_rar.infolist():
            #        print (f.filename, f.file_size)
            #    opened_rar.extractall(dirname)
            print(filezip, dirname)
            patoolib.extract_archive(filezip, dirname)#ERREUR...
        elif ext == 'zip':
            zfile = zipfile.ZipFile(filezip)
            for name in zfile.namelist():
                # filename = os.path.split(name)[1]
                zfile.extract(name, dirname)
            zfile.close()
     
        return os.path.split(filezip)[0]#Je renvoie le chemin pour lutiliser plus tard

    Console :
    C:/Users/Anon/Desktop/1300001717.rar C:/Users/Anon/Desktop/tmpData
    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Users\Anon\Anaconda3\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
    File "C:/Users/Anon/.spyder-py3/AssetsManagement/Main.py", line 410, in <lambda>
    bt = ttk.Button(win2, text="generer", command=lambda: generateData(file, win2))
    File "C:/Users/Anon/.spyder-py3/AssetsManagement/Main.py", line 122, in generateData
    dir0 = str(unzip(file))
    File "C:/Users/Anon/.spyder-py3/AssetsManagement/Main.py", line 110, in unzip
    patoolib.extract_archive(filezip, dirname)
    File "C:\Users\Anon\Anaconda3\lib\site-packages\patoolib\__init__.py", line 682, in extract_archive
    if verbosity >= 0:
    TypeError: '>=' not supported between instances of 'str' and 'int'


    PS : le code en commentaire est un autre essai qui ne fonctionne pas, ca me disait
    File "C:\Users\Anon\Anaconda3\lib\site-packages\rarfile.py", line 2816, in custom_popen
    raise RarCannotExec("Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL)
    rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')

    Alors que j'ai deja installe unrar

  2. #2
    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,

    Cà plante parce que vous n'avez pas lu la documentation de extract_archive et/ou que vous ne savez pas trop comment sont passés les arguments d'une fonction avec Python.
    Le "prototype" de la fonction étant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    def extract_archive(archive, verbosity=0, outdir=None, program=None, interactive=True)
    en l'appelant via patoolib.extract_archive(filezip, dirname), diname sera assigné à "verbosity"... et çà plante plus loin. patoolib.extract_archive(filezip, outdir=dirname) devrait fonctionner.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Ah oui j'ai pas fait gaffe je n'ai pas l'habitude de manipuler les fonctions avec des parametres predefinis, merci !

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

Discussions similaires

  1. extraire fichier .rar
    Par fantomas261 dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 15/01/2008, 16h06
  2. Réponses: 9
    Dernier message: 14/08/2007, 14h24
  3. Extraire Texte Word avec POIFS et non HWPF
    Par Sebou77 dans le forum Documents
    Réponses: 2
    Dernier message: 30/06/2007, 13h58
  4. extraire une image avec LWP
    Par apo.arutha dans le forum Web
    Réponses: 2
    Dernier message: 06/12/2006, 16h50
  5. [DOM] Extraire le texte avec DOM
    Par soumou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/11/2006, 00h21

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