Je travaille avec un ensemble important de fichiers texte. Beaucoup d'entre eux ont écrit dans des encodages différents. Je crée une liste d'objets qui contient certaines des sous-chaînes de ces fichiers texte. Je m'occupe des problèmes d'encodage lors de l'ouverture des fichiers (les objets sont créés correctement et peuvent être utilisés). Voici ma liste:Problèmes avec pickle et codages
len(hands)
47580
type(hands)
<class 'list'>
type(hands[0])
<class '__main__.BridgeHand'>
Maintenant, j'essaie de décaper cet objet:
import pickle
pickle.dump(hands, open("handspi.p", "wb"))
Il crée un fichier de 9 Mo handspi. Les problèmes commencent lorsque je tente de unpickle il:
hh = pickle.load(open(#some path to this pickle file))
Trace de la pile se termine par:
File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 30: character maps to <undefined>
Que dois-je faire? Merci pour votre aide :)
Vous n'avez pas montré la ligne de code exacte qui déclenche réellement l'erreur - c'est toujours une bonne idée de le faire. Probablement, vous n'ouvrez pas le fichier en mode binaire ('" rb "'), mais je ne peux que deviner. –
Ouais, merci. Cela résout le problème, je suis retardé :( –
Sven a répondu, mais je l'ai formalisé et posté comme réponse –