„Druck“-Ausgabe in eine Datei umleiten
Beim Versuch, die „Druck“-Ausgabe in eine Textdatei in Python umzuleiten, kann es sein, dass Benutzer stoßen auf Herausforderungen, wenn sich ihr Code nicht wie erwartet verhält. In solchen Fällen kann die Verwendung von sys.stdout zum Umleiten der Ausgabe zu unerwarteten Ergebnissen führen.
Ein einfacher und empfohlener Ansatz besteht darin, direkt in ein Dateiobjekt zu drucken:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f) # Python 3.x # print >> f, 'Filename:', filename # Python 2.x
Alternativ z B. ein einmaliges Skript, kann die Umleitung von „sys.stdout“ geeignet sein:
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()
Seit Python 3.4 bietet die Standardbibliothek eine Kontextmanager, der diese Aufgabe vereinfacht:
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
Eine externe Umleitung von der Shell kann ebenfalls eine effektive Option sein:
./script.py > out.txt
Um potenzielle Probleme zu beheben, sollten Sie den ersten Dateinamen im Skript überprüfen , die möglicherweise nicht initialisiert wird. Darüber hinaus kann die Überprüfung, ob der Ordner vorhanden ist, und das Ausdrucken von „Bamfiles“ dabei helfen, etwaige Probleme bei der Dateierkennung zu erkennen. Für optimale Codeklarheit wird die Verwendung von „os.path.join“ und „os.path.basename“ zur Pfad- und Dateinamenmanipulation empfohlen.
Das obige ist der detaillierte Inhalt vonWie kann ich die „print'-Ausgabe von Python in eine Datei umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!