Wie man in Python nach stderr druckt
Dieses Tutorial erklärt, wie man in Python in die Standardfehlerausgabe stderr
schreibt. Es listet auch einige Beispielcodes auf, um die verschiedenen Möglichkeiten, in stderr
zu schreiben, zu erklären, da sich die Syntax im Laufe der Zeit geändert hat.
Drucken nach stderr
in Python 3.x
Für Python3.x hat die Funktion print
ein Schlüsselwort-Argument file
, das das Druckziel angibt. Es ist standardmäßig sys.stdout
, könnte aber auch sys.stderr
oder sogar ein Dateipfad sein.
Sie gibt die Nachricht an stderr
aus, wenn file=sys.stderr
. Ein Beispielcode ist unten angegeben:
import sys
print("Error", file=sys.stderr)
Ausgabe:
Error
Ausgabe nach stderr
in Python 2.x
Für Python2.x könnte die Anweisung print
die Nachricht an ein dateiähnliches
Ziel wie stdout
, stderr
oder einen Dateipfad ausgeben. Dieses dateiähnliche
Objekt wird nach dem >>
angegeben. Siehe das folgende Beispiel.
import sys
print >>sys.stderr, "Error Detected!"
Ausgabe:
Error Detected!
Verwenden Sie die Datei sys.stderr
, um nach stderr
zu drucken
Das sys
-Modul von Python liefert wertvolle Informationen und Schlüsselfunktionen. Die Methode sys.stderr.write()
kann verwendet werden. Die Methode sys.stderr.write()
gibt die Nachricht als gegebenen Parameter an den stderr
aus. Siehe das Beispiel unten.
import sys
sys.stderr.write("Error!")
Ausgabe:
Error!
Verwendung von das logging
Modul zum Drucken an stderr
Das logging
Modul in Python wurde speziell für die Protokollierung von Nachrichten erstellt. Das Logging-Modul kann verwendet werden, um nach der Einstellung der Grundkonfiguration nach stderr
zu drucken. logging.basicConfig()
nimmt das Format der message
als Eingabe, und logging.getLogger()
gibt ein Objekt der logging
zurück. Die log.warning()
nimmt den Text der warning
und gibt ihn in stderr
aus.
Ein grundlegendes Beispiel für diesen Ansatz wird unten gezeigt:
import logging
logging.basicConfig(format="%(messages)s")
log = logging.getLogger()
log.warning("Error Found!")
Ausgabe:
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