Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Programmausgabe gleichzeitig auf der Konsole anzeigen und in einer Datei protokollieren?
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!