Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Programmausgabe gleichzeitig auf der Konsole anzeigen und in einer Datei protokollieren?

Wie kann ich die Programmausgabe gleichzeitig auf der Konsole anzeigen und in einer Datei protokollieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 04:45:09188Durchsuche

How Can I Simultaneously Display Program Output to the Console and Log It to a File?

Systemausgabe in eine Protokolldatei umwandeln

Problem:

Wie man gleichzeitig die Ausgabe auf der Konsole anzeigt und gleichzeitig protokolliert es in eine Datei, einschließlich Systemaufruf Ausgabe?

Lösung:

Verwenden Sie die Tee-Klasse, um die Systemausgabe ohne Umleitung in eine Protokolldatei zu duplizieren.

Importieren Sie zunächst die erforderlichen Bibliotheken:

import sys

Dann instanziieren Sie ein Tee-Objekt:

tee = Tee("my_log.txt", 'w')

Dies wird geöffnet die angegebene Protokolldatei und duplizieren Sie alle nachfolgenden stdout-Ausgaben sowohl in die Datei als auch in die Konsole.

Stellen Sie abschließend sicher, dass Sie stdout wieder in den ursprünglichen Zustand zurückversetzen, wenn Sie fertig sind:

del tee

Beispielverwendung:

with Tee("my_log.txt", 'w'):
    print("foo bar")
    os.spawnve("P_WAIT", "/bin/ls", ["/bin/ls"], {})
    os.execve("/bin/ls", ["/bin/ls"], os.environ)

Dieser Code gibt „foo bar“ auf der Konsole aus und protokolliert es in „my_log.txt“ sowie alle anderen Ausgabe der ausgeführten Systembefehle.

Das obige ist der detaillierte Inhalt vonWie kann ich die Programmausgabe gleichzeitig auf der Konsole anzeigen und in einer Datei protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn