Ausgabeumleitung für Python-Code
Die Abfrage konzentriert sich auf die Umleitung von Druckanweisungen in eine bestimmte Textdatei mithilfe von Python. Trotz der Verwendung der sys.stdout-Technik bleibt die Zieldatei leer. Ziel dieses Artikels ist es, das Problem zu untersuchen und alternative Lösungen bereitzustellen.
Verwendung von Dateiobjekten für die Ausgabe
Der einfachste Ansatz besteht darin, direkt in ein Dateiobjekt zu schreiben:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f) # Python 3.x # print >> f, 'Filename:', filename # Python 2.x
Standardausgabe umleiten
Alternativ kann die Standardausgabe umgeleitet werden kann mit dem folgenden Code erreicht werden:
import sys orig_stdout = sys.stdout f = open('out.txt', 'w') sys.stdout = f for i in range(2): print('i = ', i) sys.stdout = orig_stdout f.close()
Einsatz des Standardbibliotheks-Kontextmanagers
Für Python 3.4 und höher kann ein dedizierter Kontextmanager diesen Prozess vereinfachen:
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
Externe Ausgabeumleitung
Umleitung der Ausgabe Extern über die Shell ist eine weitere praktikable Option:
./script.py > out.txt
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann ich die Druckausgabe von Python in eine Datei umleiten und warum kann dies fehlschlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!