Yo tenía la impresión de que los objetos de archivo se cierran inmediatamente cuando su recuento de referencia golpean 0, por lo tanto, la línea:¿Se cierra automáticamente un objeto de archivo cuando su recuento de referencias alcanza cero?
foo = open('foo').read()
sería conseguir que el contenido del archivo y cerrar inmediatamente el archivo. Sin embargo, después de leer la respuesta a Is close() necessary when using iterator on a Python file object me da la impresión de que esto no sucede, y de que es necesario llamar al .close()
en un objeto de archivo siempre.
¿La línea anterior hace lo que creo que está haciendo e incluso si lo hace, es lo pitónico que hacer?
lo preguntas sobre el objeto fichero de Python o el objeto de archivos subyacente a nivel de sistema operativo? La capa del SO está separada de la capa de Python. ¿Por qué preguntas? –
Agradecería una explicación de lo que ocurre en ambos niveles. Más específicamente, me gustaría saber si escribir esa línea de código podría causar problemas en mi aplicación. Estaba asumiendo cuando Python cierra el objeto de archivo que también se lanza el objeto subyacente. –