Ich habe auf diese Weise ein Python-Wörterbuch gespeichert (eigentlich mit "importiere cPickle as pickle"):
pickle.dump (dictname, öffnen ("dateiname.pkl", "wb"))
Und ich lade es in einem anderen Skript auf diese Weise:
dictname = pickle.load (Öffnen ("dateiname.pkl", "rb"))
Wie ist es möglich, die Datei danach zu schließen?
Es ist besser, stattdessen eine with
-Anweisung zu verwenden, die geschlossen wird die Datei, wenn die Anweisung endet, auch wenn eine Ausnahme auftritt:
Andernfalls wird die Datei nur geschlossen, wenn der Garbage Collector ausgeführt wird, und wenn dies geschieht, ist sie unbestimmt und fast unmöglich vorherzusagen.
Das Verwenden der with
-Anweisung ist der bessere Ansatz, aber um entgegengesetzt zu sein, wenn Sie with
nicht verwendet haben, sollten Sie eine Datei behandeln ... und von dort schließen.
und im anderen Skript:
%Vor% Dies ist im Wesentlichen, was with
für Sie tut.
Aber ... wenn Sie (aus welchem Grund auch immer) stecken geblieben sind, mit dem Code, den Sie ursprünglich gepostet haben, und um Ihre ursprüngliche Frage zu beantworten ... ja, der Müllsammler wird es für Sie zu einem unbestimmten Zeitpunkt in der Zukunft schließen. Oder Sie könnten einen Verweis auf das Dateiobjekt mit dem gc
-Modul aufspüren und dann schließen. Es gibt ein paar Codes, die Ihnen dabei helfen können, zum Beispiel: Ссылка
with
und f.close()
sind jedoch viel mehr bevorzugt, und Sie sollten es vermeiden, durch das gc
Modul zu suchen, es sei denn, Sie befinden sich wirklich in einem Pickle.
Tags und Links python pickle data-dictionary