2011-03-19 5 views

Respuesta

23

El close() aquí ocurre cuando el objeto file se desasigna de la memoria, como parte de su lógica de eliminación. Debido a que los Pythons modernos en otras máquinas virtuales, como Java y .NET, no pueden controlar cuándo un objeto es desasignado de la memoria, ya no se considera bueno como Python a open() sin un close(). La recomendación actual es el uso de una declaración with, que solicita explícitamente una close() cuando se sale del bloque:

with open('myfile') as f: 
    # use the file 
# when you get back out to this level of code, the file is closed 

Si usted no necesita un nombre f para el archivo, a continuación, se puede omitir la cláusula as de la declaración :

with open('myfile'): 
    # use the file 
# when you get back out to this level of code, the file is closed 
+0

OK muy buena respuesta para mí. – philnext

+0

¿es posible hacerlo en línea o sin una 'f' temporal? –

+0

Sí, he complementado la pregunta para mostrar cómo no crear un nombre 'f' para el archivo. –

Cuestiones relacionadas