2017-06-11 2 views
2

Comment puis-je savoir si pickle.dump() a correctement enregistré le fichier pickle?
Dans le docs, je ne vois pas une valeur de retour qui indique le succès ou l'échec.Comment puis-je savoir si pickle.dump() a correctement enregistré le fichier

Je travaille avec python 3, et actuellement dans un carnet de jupyter

+0

Si vous downvote la question, pouvez-vous au moins dire pourquoi, ou indiquer comment l'améliorer? – SherylHohman

+1

pourquoi la haine, c'est une question complètement valide ??? –

+0

@MattiLyra merci pour l'édition .. et le soutien. – SherylHohman

Répondre

3

Si pickle.dump ou pickle.dumps échoue une erreur sera levée. Voir le docs plus bas pour ce qui peut et ne peut pas être mariné. Vous pouvez également obtenir un OSError (link) si un appel système de niveau inférieur ne

Notez cependant que même si pickle.dump ne jette pas une erreur, vous pouvez toujours pas être en mesure de charger les données pickle d. Il peut par exemple être le cas qu'un objet que vous pickle d utilise une importation ou référence une fonction qui a été définie dans le contexte du code pickling, disons qu'un bloc-notes Jupyter définit une fonction personnalisée qui est référencée par l'objet décapé. Si vous expédiez maintenant ce fichier d'objet décapé sur une autre machine, il ne verra pas la fonction référencée dans l'objet et le dépilage échouera.

De même, s'il y a un changement d'API dans un module dont dépend l'objet picled, les chemins d'importation peuvent avoir changé et le décochéage échouera à nouveau.

Vous pouvez également jeter un oeil à dill qui couvre les cas un peu plus que picklehttps://github.com/uqfoundation/dill