2017-06-11 1 views
2

Wie kann ich wissen, ob pickle.dump() die Beizdatei erfolgreich gespeichert hat?
In der docs, sehe ich keinen Rückgabewert, der Erfolg oder Misserfolg anzeigt.Wie kann ich wissen, ob pickle.dump() die Datei erfolgreich gespeichert hat?

Ich arbeite mit Python 3 und zur Zeit in einem jupyter Notebook

+0

Wenn Sie die Frage downvote, können Sie zumindest sagen, warum, oder geben an, wie es zu verbessern? – SherylHohman

+1

Warum der Hass, das ist eine völlig gültige Frage ??? –

+0

@ MattiLyra danke für die Bearbeitung .. und die Unterstützung. – SherylHohman

Antwort

3

Wenn pickle.dump oder pickle.dumps ein Fehler ausgelöst wird versagt. Siehe die docs weiter unten für was kann und kann nicht gebeizt werden. Sie können aber auch eine OSError (link), wenn einige geringere Systemaufruf fehlschlägt

Hinweis erhalten, dass selbst wenn pickle.dump keinen Fehler werfen, kann man noch nicht die pickle d Daten laden können. Es kann beispielsweise der Fall sein, dass ein Objekt, das pickle d einen Import verwendet oder eine Funktion referenziert, die im Kontext des pickling-Codes definiert wurde, ein Jupyter-Notizbuch definiert eine benutzerdefinierte Funktion, auf die das eingelegte Objekt verweist. Wenn Sie diese eingelegte Objektdatei jetzt an eine andere Maschine senden, wird die Funktion, auf die im Objekt verwiesen wird, nicht angezeigt, und die Neueinrichtung schlägt fehl.

Ähnlich verhält es sich mit einer API-Änderung in einem Modul, von dem das picled-Objekt abhängt. Die Importpfade haben sich möglicherweise geändert, und das erneute Entpacken schlägt erneut fehl.

Sie auch einen Blick auf dill haben möchten, die als pickle etwas mehr Fälle deckt https://github.com/uqfoundation/dill

Verwandte Themen