Stampa su stderr in Python
Questo tutorial spiega come scrivere nell’output di errore standard, stderr, in Python. Elenca anche alcuni codici di esempio per spiegare diversi modi di scrivere in stderr poiché la sintassi è cambiata nel tempo.
Stampa su stderr in Python 3.x
Per Python3.x, la funzione print ha un argomento di parola chiave file che specifica la destinazione di stampa. Di default è sys.stdout ma potrebbe essere sys.stderr o anche un percorso di file.
Stampa il messaggio in stderr se file=sys.stderr. Di seguito viene fornito un codice di esempio:
import sys
print("Error", file=sys.stderr)
Produzione:
Error
Stampa su stderr in Python 2.x
Per Python2.x, l’istruzione print potrebbe stampare il messaggio in una destinazione simile a un file come stdout, stderr o un percorso di file. Questo oggetto tipo-file è specificato dopo >>. Vedi l’esempio sotto.
import sys
print >>sys.stderr, "Error Detected!"
Produzione:
Error Detected!
Usa sys.stderr per stampare su stderr
Il modulo sys di Python fornisce preziose informazioni e funzionalità chiave. È possibile utilizzare il metodo sys.stderr.write(). Il metodo sys.stderr.write() stampa il messaggio come parametro dato allo stderr. Vedi l’esempio sotto.
import sys
sys.stderr.write("Error!")
Produzione:
Error!
Usa il modulo logging per stampare su stderr
Il modulo logging in Python è stato creato specificatamente per registrare i messaggi. Il modulo di registrazione può essere utilizzato per stampare su stderr dopo aver impostato la configurazione di base. logging.basicConfig() prende il formato di message come input e logging.getLogger() restituisce un oggetto di logging. Il log.warning() prende il testo warning e lo stampa su stderr.
Di seguito è riportato un esempio di base di questo approccio:
import logging
logging.basicConfig(format="%(messages)s")
log = logging.getLogger()
log.warning("Error Found!")
Produzione:
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