Cómo imprimir a stderr en Python

Syed Moiz Haider 10 octubre 2023
  1. Imprime a stderr en Python 2.x
  2. Use el módulo logging para imprimir a stderr
Cómo imprimir a stderr en Python

Este tutorial explica cómo escribir a la salida de error estándar, stderr, en Python. También lista algunos códigos de ejemplo para explicar las diferentes maneras de escribir en stderr, ya que la sintaxis ha cambiado con el tiempo.

Escribir a stderr en Python 3.x

Para Python 3.x, la función print() tiene un argumento de palabra clave file que especifica el destino de la impresión. Es sys.stdout por defecto pero podría ser sys.stderr o incluso una ruta de archivo.

Imprime el mensaje a stderr si file=sys.stderr. A continuación se muestra un código de ejemplo:

import sys

print("Error", file=sys.stderr)

Resultado:

Error

Imprime a stderr en Python 2.x

Para Python 2.x, la sentencia print podría imprimir el mensaje a un destino file-like como stdout, stderr, o una ruta de archivo. Este objeto file-like se especifica después del >>. Vea el siguiente ejemplo.

import sys

print >>sys.stderr, "Error Detected!"

Resultado:

Error Detected!

Use el sys.stderr para imprimir a stderr

El módulo sys de Python proporciona información valiosa y funcionalidades clave. Se puede utilizar el método sys.stderr.write(). sys.stderr.write() method imprime el mensaje como el parámetro dado al stderr. Vea el ejemplo siguiente.

import sys

sys.stderr.write("Error!")

Resultado:

Error!

Use el módulo logging para imprimir a stderr

El módulo logging en Python está creado específicamente para registrar mensajes. El módulo de registro puede ser usado para imprimir a stderr después de establecer la configuración básica. logging.basicConfig() toma el formato de message como su entrada, y logging.getLogger() devuelve un objeto del logging. El log.warning() toma el texto de warning y lo imprime en stderr.

A continuación se muestra un ejemplo básico de este enfoque:

import logging

logging.basicConfig(format="%(messages)s")
log = logging.getLogger()

log.warning("Error Found!")

Resultado:

Error Found!
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Artículo relacionado - Python Print