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.