HOWTO · Python

Wie man in Python nach stderr druckt

Das Tutorial demonstriert, 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!