Partage
  • Partager sur Facebook
  • Partager sur Twitter

Encore une decode erreur incompréhensible

[Decode error - output not utf-8] avec zipfile

Sujet résolu
    20 décembre 2014 à 21:40:48

    Salut

    Première question : Y a t-il un quota qui me limiterais dans la création des sujets ? ;'D

    Ensuite, j'ai un problème avec la méthode ZipFile qui me renvoie l'erreur marquée dans le sous-titre du sujet :

    	def zipperDossier(self, cheminDossier, nomDossier, compresse = False):
    		extension = '.zip'
    
    		nomDossierComplet = nomDossier + extension
    		
    		with zipfile.ZipFile(nomDossierComplet, 'w') as dossier:
    			for fichier in self.listing(cheminDossier, 'fichier'):
    				dossier.write(fichier, compress_type = compresse) #if compresse -> zipfile.ZIP_DEFLATED sinon zipfile.ZIP_STORED
    			dossier.close()
    if __name__ == '__main__':
    	reload(sys)
    	sys.setdefaultencoding('utf-8')
    	module = MonModule()
    
    	#print module.listing('C:/Users/Christophe/Pictures/Pellicule', 'fichier')
    	
    	module.zipperDossier('C:/Users/Christophe/Pictures/Pellicule', 'testzip')
    Traceback (most recent call last):[Decode error - output not utf-8]
    [Finished in 0.4s with exit code 1]

    Merci :magicien:


    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2014 à 7:25:08

      J'ai regardé avant de poster ce sujet, sauf que je n'ai aucune idée de ce dont il parle :)
      Mais merci, c'est toujours bon de rappeler de regarder la doc :)
      There is no official file name encoding for ZIP files. If you have unicode file names, you must convert them to byte strings in your desired encoding before passing them to write(). WinZip interprets all file names as encoded in CP437, also known as DOS Latin.
      L'éditeur d'OC est vraiment l'un des plus terribles (dans le sens de pourri) qu'il m'ait été donné de voir depuis des années.

      -
      Edité par InhumanRampage 21 décembre 2014 à 7:27:28

      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2014 à 7:53:49

        Alors l'intitulé du post n'est pas bon; c'est un problème de lecture de documentation. :p

        Pour convertir des chaînes unicode en byte :

        string.encode("utf8")



        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2014 à 17:26:15

          Salut

          Lol, malheureusement ça ne marche pas, je dois dire que ça m'aurait étonné :/ Je fais déjà un setdefaultencoding avec sys tout au début du programme. J'ai essayé sur toutes les variables qui étaient de type string, et ça n'a rien changé :(

          Help :(

          EDIT : Ok, ça venait de Sublime Text, je l'ai exécuter avec la console et plus de decode error :). Je met résolu.

          -
          Edité par InhumanRampage 21 décembre 2014 à 21:06:37

          • Partager sur Facebook
          • Partager sur Twitter

          Encore une decode erreur incompréhensible

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown