2014-06-19 7 views
0

J'ai un petit morceau de code dans mon programme qui importe un dict d'un fichier texte
Il me donne l'erreur suivante:pickle.load() EOFError avec le fichier txt rempli

Traceback (most recent call last): 
    File "C:\Users\S.Latil\Desktop\Python\HomeWork Full\HomeWork\test.py", line 3, in <module> 
    Lesson = pickle.load(Li) 
EOFError 

Mon code est :

import pickle 

with open('LessonOut.txt', 'rb') as Li: 
Lesson = pickle.load(Li) 

print(Lesson) 

Dans le fichier LessonOut.txt j'ai cette chaîne:

€}q X helloqX worldqs. 

I Je ne comprends pas pourquoi il me donne cette erreur, je n'ai pas vu une solution dans d'autres discussions.
Ce qu'il faut imprimer est { « bonjour », « Monde »}
Si quelqu'un pourrait expliquer pourquoi cette erreur se produit et comment y remédier, il serait grand

+1

Je ne pense pas que vous pourriez fournir le code qui a écrit cette chaîne dans LessonOut.txt? J'ai essayé de simplement copier-coller mais il m'a dit "protocole pickle non supporté", donc je pense que quelque chose est perdu dans la traduction. – Kevin

+0

Étrange, maintenant cela fonctionne même si je n'ai rien changé ... Eh bien merci pour votre temps, je vais supprimer ce fil dans quelques minutes – TheD0ubleT

+0

Etes-vous sûr que le contenu dans 'LessonOut.txt' est le généré par pickle.dump (obj , fichier, protocole = Aucun)? Essayez d'utiliser différents protocoles pour vider et voir le fichier résultat. – bpceee

Répondre

1

J'ai trouvé l'erreur au problème en fait, il est assez simple. Ce qui s'est passé, c'est que j'ai copié et collé le contenu d'un fichier de sortie pickle dans mon txt et parce que pickle n'utilise pas seulement les caractères ascii qu'il n'a pas copiés correctement. Tout ce que j'ai fait était de redump le dict sur le fichier et cela a fonctionné.
Espérons que cela a aidé quelqu'un.

Questions connexes