Qué significa BrokenPipeError y cómo solucionarlo
Referencia del error
BrokenPipeError
Lenguaje
Severidad
BajaCuándo ocurre
BrokenPipeError se lanza cuando un proceso intenta escribir en una tubería cuyo extremo de lectura ha sido cerrado.
Posibles soluciones
Captura BrokenPipeError alrededor de tus operaciones de escritura y sal limpiamente. Para scripts que escriben en stdout, cerrar sys.stderr antes de salir suprime el traceback ruidoso. Este es un comportamiento esperado en tuberías Unix y generalmente no es un error en tu código.
Errores relacionados
Más detalles
BrokenPipeError se lanza cuando un proceso intenta escribir en una tubería cuyo extremo de lectura ha sido cerrado. Ocurre comúnmente en tuberías Unix cuando un comando descendente (como head o grep) termina y cierra su stdin antes de que el proceso ascendente haya terminado de escribir.
Por qué ocurre
- •Redirigir la salida a un comando que termina anticipadamente (ej. head -1 o less).
- •Se escribe en un socket de red después de que el extremo remoto haya cerrado la conexión.
- •Un subproceso que lee de una tubería sale antes de consumir toda la salida.
Posibles soluciones
Captura BrokenPipeError alrededor de tus operaciones de escritura y sal limpiamente. Para scripts que escriben en stdout, cerrar sys.stderr antes de salir suprime el traceback ruidoso. Este es un comportamiento esperado en tuberías Unix y generalmente no es un error en tu código.
Ejemplos
Código que causa el error
# python script.py | head -1
import sys
for i in range(1000):
print(i) # BrokenPipeError after head closes the pipeError en la terminal
BrokenPipeError: [Errno 32] Broken pipe
Código corregido
import sys
try:
for i in range(1000):
print(i)
except BrokenPipeError:
# Reader closed early, that is fine
sys.stderr.close()Practica en inglés
¿Cómo le explicarías un BrokenPipeError a un compañero dev? Elige la frase correcta:
"I hit an error...
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis