HOWTO · Python

Cómo imprimir a stderr en Python

El tutorial demuestra cómo imprimir a stderr en Python.

En esta página

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!