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 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