Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Gestores de Contexto Anidados y Múltiples | Manejo Avanzado de Archivos y Gestores de Contexto
Programación Estructural en Python

Gestores de Contexto Anidados y Múltiples

Desliza para mostrar el menú

Cuando trabajas con varios recursos en Python, como abrir más de un archivo al mismo tiempo, a menudo necesitas asegurarte de que cada recurso se adquiera y libere correctamente. Aquí es donde los gestores de contexto anidados y múltiples resultan especialmente útiles. El video anterior muestra dos enfoques: anidar sentencias with y usar varios gestores de contexto en una sola línea.

Anidar sentencias with significa colocar un bloque with dentro de otro. Esto es útil cuando el uso de un recurso depende de otro. Por ejemplo, puedes leer de un archivo y escribir en otro, asegurando que ambos archivos se gestionen correctamente:

with open('input.txt', 'r') as infile:
    with open('output.txt', 'w') as outfile:
        for line in infile:
            outfile.write(line.upper())

Sin embargo, Python también permite abrir ambos archivos en una sola sentencia with, separando cada gestor de contexto con una coma. Este enfoque hace que tu código sea más limpio y garantiza que cada recurso se libere en el orden inverso al que fue adquirido. Esto significa que el último recurso que abres es el primero que se cierra cuando termina el bloque.

# Open two files simultaneously using a single 'with' statement
with open('input.txt', 'r') as infile, open('output.txt', 'w') as outfile:
    for line in infile:
        outfile.write(line.lower())
# When the block ends, outfile is closed first, then infile

Usar múltiples gestores de contexto en una sola línea no es solo azúcar sintáctica; es una forma robusta de gestionar varios recursos a la vez. Es especialmente importante al trabajar con archivos, conexiones de red o bloqueos que siempre deben liberarse correctamente para evitar fugas de recursos o interbloqueos.

Note
Estudia más
question mark

¿Cuál afirmación describe correctamente el orden en que se liberan los recursos al usar múltiples gestores de contexto en una sola sentencia with?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 6
some-alt