Imprimir para stderr em Python

Syed Moiz Haider 10 outubro 2023
  1. Imprime para stderr em Python 2.x
  2. Use o módulo logging para imprimir em stderr
Imprimir para stderr em Python

Este tutorial explica como escrever para a saída de erro padrão, stderr, em Python. Também lista alguns exemplos de códigos para explicar diferentes formas de escrever para stderr, uma vez que a sintaxe mudou com o tempo.

Imprimir para stderr em Python 3.x

Para Python3.x, a função print tem um argumento de palavra-chave file que especifica o destino da impressão. É sys.stdout por defeito mas pode ser sys.stderr ou mesmo um caminho de ficheiro.

Imprime a mensagem para stderr se file=sys.stderr. Um código de exemplo é dado abaixo:

import sys

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

Resultado:

Error

Imprime para stderr em Python 2.x

Para Python2.x, a declaração print poderia imprimir a mensagem para um destino stdout, stderr, ou para um caminho de ficheiro. Este objecto file-like é especificado após o >>. Ver o exemplo abaixo.

import sys

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

Resultado:

Error Detected!

Utilize o sys.stderr para imprimir para o stderr

O módulo sys de Python fornece informação valiosa e funcionalidades chave. O método sys.stderr.write() pode ser utilizado. O método sys.stderr.write()imprime a mensagem como o parâmetro dado ao método stderr. Ver o exemplo abaixo.

import sys

sys.stderr.write("Error!")

Resultado:

Error!

Use o módulo logging para imprimir em stderr

O módulo logging em Python é especificamente criado para registar mensagens. O módulo de registo pode ser utilizado para imprimir para stderr depois de definir a configuração básica. O módulo logging.basicConfig() toma o formato de message como entrada, e logging.getLogger() devolve um objecto do módulo logging. O log.warning() pega no texto de warning e imprime-o para stderr.

Um exemplo básico desta abordagem é mostrado abaixo:

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

Artigo relacionado - Python Print