FogleBird'in yanıtını genişletmek için, açık bir şekilde kapatmazsanız, dosya nesnesi yok olduğunda dosya otomatik olarak kapanır. CPython'da bu, daha fazla referans bulunmadığı anda olur, ör. Bir fonksiyonda yerel değişken ise ve fonksiyon biter. bir özel fonksiyon atılır ve dosya açıkça daha sonra dosyaya atıf traceback nesne ve dosyada yığın izleme parçası olarak muhafaza edilecek olan with
deyimi veya bir try:...finally:
kullanılarak kapatılmazsa Ancak eğer, kapalı olmayacak en az bir istisna atılana kadar.
Ayrıca IronPython ve Jython sırasıyla .Net CLR ve Java JVM çöp toplama tesisleri kullanmak. Bunlar referans sayılmaz, bu nedenle çöp toplayıcı nesnenin belleğini geri almaya veya program sona erdirmeye karar verene kadar dosya süresiz olarak açık kalacaktır. Genel olarak, dosyayı with:
veya try:...finally:
kullanarak açıkça kapatmak önemlidir. Bütün bunların Tabii
açık temizleme gerektiren nesnenin başka tür için de geçerlidir.
Sadece şunu belirtin: dosya, yakın bir yöntemi olan bir dosya nesnesini döndürür. Bu en düz ileriye doğru çözüm olurdu, ama "ile" açıkçası daha güzel olanıdır. – Achim
Bir sorunum var - Python'umda "ile" yok. Gelecekden ithal etmek doğru mu? Python 2,5'im var. – bodacydo
Eğer Python 2.5'iniz varsa, o zaman evet. –