Stampa su stderr in Python

Syed Moiz Haider 30 gennaio 2023
  1. Stampa su stderr in Python 2.x
  2. Usa il modulo logging per stampare su stderr
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 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

Articolo correlato - Python Print