Python: Imprimir mensagens de erro (stderr)

Palavras-chave: print, stdin, stdout, stderr, erro, dispositivos, entrada/saída

Quando estamos fazendo um programa que roda na linha de comando e precisamos fazer com que esse programa imprima uma mensagem de erro ou alerta, é aconselhável enviar essa mensagem para a saída de erro padrão, conhecida como STDERR.

A linguagem Python disponibiliza para o programador todos os dispositivos de entrada/saída padrão do sistema operacional dentro do módulo sys:

sys.stdin      Entrada padrão (STDIN)
sys.stdout     Saída padrão (STDOUT)
sys.stderr     Saída de erros (STDERR)

O comando print envia as mensagens que serão impressas no terminal para o dispositivo sys.stdout. Neste caso, como podemos enviar mensagens para a saída de erro? De duas maneiras: usando o método .write() do dispositivo ou usando o redirecionamento do comando print. Veja os exemplos:

import sys

# .write()
# Dica: lembre-se de adicionar a quebra-de-linha no final
sys.stderr.write("ERRO: mensagem de erro.\\n")

# redirecionamento
print >>sys.stderr, "ERRO: mensagem de erro."

A sintaxe de redirecionamento é desconhecida de muitos programadores Python, mas é bastante prática e também pode ser usada para escrita de qualquer tipo de arquivo.

This entry was posted in Python. Bookmark the permalink.