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