typestar

Las otras herramientas de contextlib en Python

suppress, redirect_stdout, ExitStack y closing.

import io
from contextlib import ExitStack, redirect_stdout, suppress
from pathlib import Path

with suppress(FileNotFoundError):
    Path("never-existed.txt").unlink()
print("sigo aquí")

bufer = io.StringIO()
with redirect_stdout(bufer):
    print("capturado")
print(bufer.getvalue().strip())

Path("a.txt").write_text("a")
Path("b.txt").write_text("b")
with ExitStack() as pila:
    archivos = [pila.enter_context(open(ruta)) for ruta in ("a.txt", "b.txt")]
    print([f.read() for f in archivos])

Cómo funciona

  1. suppress es un bloque except vacío pero legible.
  2. redirect_stdout captura los prints de código que no es tuyo.
  3. ExitStack administra un número variable de administradores de contexto.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
484
Tokens
139
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 76 segundos.

Escribe este fragmento

Paso 3 de 4 en Medición e introspección; paso 37 de 41 en Herramientas de dominio.

← Anterior Siguiente →