Estoy tratando de comprender las compensaciones/diferencias entre estos a maneras de abrir los archivos para su procesamiento, línea por líneaprocesamiento de archivos línea por línea, para el bucle vs con
with open('data.txt') as inf:
for line in inf:
#etc
vs
for line in open('data.txt'):
# etc
entiendo que el uso de with
garantiza que el archivo se cierra cuando se sale del "con el bloque" (suite?) (o una excepción es contrarrestada). Así que he estado usando with
desde que me enteré aquí.
Re for
-loop: desde la búsqueda alrededor de la red y así, parece que si el archivo se cierra cuando el for
-loop se sale depende de la implementación? Y No pude encontrar nada sobre cómo esta construcción se ocuparía de las excepciones . ¿Alguien sabe?
Si estoy equivocado acerca de cualquier cosa por encima, le agradecería correcciones, de lo contrario no es una razón para usar siempre el constructo for
sobre el with
? (Suponiendo que tiene una opción, es decir, no están limitados por la versión de Python)
Buen punto ... Debería haber puesto algo sobre cuándo puede elegir la pregunta, es decir, no está limitado por las versiones .. Actualizaré la pregunta. ¿Así que su voto iría a 'con' entonces? – Levon
Creo que la sangría es un beneficio, ya que designa la sección que se encuentra en un contexto determinado. Tendría que sangrar de todos modos para envolver todo el bloque de una manera, excepto que cierra el archivo en el bloque final – jdi
@jdl, pero déjenme saber que el problema de sangría no fue uno que yo planteé, solo uno que mencioné como tener lo noté hace años en listas y grupos. –