Verwenden Sie die with
Anweisung ist der bessere Ansatz, aber nur um im Gegensatz zu sein, wenn Sie with
nicht verwendet haben, sollten Sie eine Datei behandeln ... und schließen von dort.
f = open('filename.pkl', 'wb')
pickle.dump(dictname, f)
f.close()
und in dem anderen Skript:
f = open('filename.pkl','rb')
dictname = pickle.load(f)
f.close()
Dies ist im Wesentlichen, was with
für Sie tut.
Jedoch ... 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 Modul gc
aufspüren und dann schließen. Es gibt ein paar Codes gibt, die Sie tun dies helfen könnte, zum Beispiel: https://github.com/uqfoundation/dill/blob/master/dill/pointers.py
jedoch with
und f.close()
sind viel viel mehr bevorzugt, und Sie sollten Verfolgung durch das gc
Modul vermeiden, wenn Sie wirklich in eine Gurke sind.