El caso de "with" es igual de seguro que el código de 4 lineas. Me hace ruido que el garbage collector se encargue de destruir el handle, no creo que sea asi pero no me estoy basando en nada escrito, es solo una suposición.
Respecto al with, al tener los métodos __enter__ y __exit__ la clase file, cuando salgas del with se va a encargar de matar el filehandle :)
Este... en el segundo caso dejás abierto el filehandle.
ResponderBorrarSi la aplicacion muere inesperadamente, en ambs casos no garantizás escritura de los datos (pero en el segundo es peor).
En el caso de 1 linea, no queda abierto, porque como no tiene nombre el filehandle, el garbage collector lo limpia. ¿o no?
ResponderBorrarEstoy pensando otra manera, pero no se si realmente es mas segura:
with open('datos.txt','w') as fh:
fh.write(('%s\n'%x for x in h_set))
El caso de "with" es igual de seguro que el código de 4 lineas. Me hace ruido que el garbage collector se encargue de destruir el handle, no creo que sea asi pero no me estoy basando en nada escrito, es solo una suposición.
ResponderBorrarRespecto al with, al tener los métodos __enter__ y __exit__ la clase file, cuando salgas del with se va a encargar de matar el filehandle :)
Slds!