J'ai un fichier pickle utilisant le format .txt. Je veux charger ce fichier pickle avec python 2.7. La taille est de 438.5 MB. Voici comment je charge les données:
def readpickle(path="C:/Python27/Lib/site-packages/xy/"):
with open(path+"filenamereal2.txt","rb") as f:
model = pickle.load(f)
return model
Et je reçois cette erreur
itemmodelreal=readpickle(path="C:/Users/Lab Komputasi/Documents/estu/")
Traceback (most recent call last):
File "<ipython-input-33-265e46f74915>", line 1, in <module>
itemmodelreal=readpickle(path="C:/Users/Lab Komputasi/Documents/estu/")
File "<ipython-input-31-fbd3e8b9e043>", line 3, in readpickle
model = pickle.load(f)
File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 1384, in load
return Unpickler(file).load()
File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 864, in load
dispatch[key](self)
File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 886, in load_eof
raise EOFError
EOFError
c'est le code que j'utilise pour écrire pickle:
with open("filenamereal3.txt", "wb") as f:
pickle.dump(result, f)
f.close()
J'ai utilisé read binary ('rb') pour charger et écrire binary ('wb') pour écrire, mais il y a toujours cette erreur. Avez-vous une idée pourquoi c'est toujours une erreur? Comment puis-je résoudre cette erreur?
Merci de votre aide....
Pour charger des données, ne voulez-vous pas lire des données ("rb") au lieu d'écrire des données ("wb")?
Le chargement des données devrait ressembler à ceci:
with open("C:/Users/Lab Komputasi/Documents/estu/filenamereal1.txt", "rb") as f:
data = pickle.load(f)
De plus, l'utilisation de f.close () n'est pas nécessaire car vous utilisez une clause with/as.
J'ai rencontré la même erreur lors du chargement d'un gros fichier vidé dans le protocole le plus élevé.
Cela semble être un bug de la bibliothèque de cornichons. Je l'ai résolu en utilisant cPickle à la place.
import cPickle as pickle
Assurez-vous que votre fichier de cornichons n'est pas vide, par exemple. si vous choisissez une variable non initialisée.