Um den Code ein wenig zu verkürzen, habe ich so etwas wie:Ist eine Textdatei nach einem offenen (Datei) .read() - Befehl noch geöffnet?
data = open(file).read()
Es ist unmöglich, von data.close()
seit data
ist es eine Zeichenfolge zu schließen, so stelle ich die Frage: Wenn nach dieser Zeile, noch die Datei gelesen wird öffnen? Muss ich mich darum kümmern, es irgendwie zu schließen?
„Wenn Sie die Datei schließen, ja , es wird offen bleiben. " Dies ist nicht wahr: In CPython wird das temporäre Dateiobjekt sofort als Garbage Collection erfasst und geschlossen. In anderen Python-Varianten (IronPython, Jython) wird das Dateiobjekt beim nächsten Ausführen der Garbage Collection geschlossen. –
Ist das per Standard oder ist es implementierungsabhängig? – Tordek
Ja, es ist nicht Teil der Sprachreferenz selbst; Das Verhalten ist definitiv implementierungsabhängig. Interessant ist, dass ich in der Dokumentation nicht einmal eine Erwähnung finden kann, dass die Datei automatisch geschlossen wird, wenn der entsprechende Dateiobjektmüll erfasst wird: Sie würden meinen, dass das irgendwo explizit wäre. (Vielleicht verpasse ich es gerade.) –