le code:
import pickle
test = 3
>>> with open('test', 'wb') as file:
... pickle.dumps(test, file)
et erreur signalée de manière inattendue.
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: an integer is required (got type _io.BufferedWriter)
Que se passe t-il ici?
Vous utilisez la fonction incorrecte . Voici les documents:
dumps(obj, protocol=None, *, fix_imports=True)
Return la représentation décapée de l'objet en tant qu'objet
bytes
.
dumps
convertit l'objet passé en bytes
et le renvoie. L'erreur que vous obtenez est lorsque vous passez un argument de fichier à ce que .dump
s'attend à être le protocole de décapage, qui est censé être un entier.
Vous voudrez utiliser pickle.dump
, qui effectue un vidage dans un fichier:
dump(obj, file, protocol=None, *, fix_imports=True)
Write une représentation décapée de
obj
vers l'objet fichier ouvertfile
.
with open('test', 'wb') as file:
pickle.dump(test, file)