Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Druckausgabe von Python in eine Datei umleiten und warum kann dies fehlschlagen?

Wie kann ich die Druckausgabe von Python in eine Datei umleiten und warum kann dies fehlschlagen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-28 21:28:12465Durchsuche

How Can I Redirect Python's Print Output to a File and Why Might It Fail?

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

  • Überprüfen Sie die Verfügbarkeit von Bamfiles innerhalb des angegebenen Pfads mithilfe von glob.glob.
  • Verwenden Sie os.path.join und os.path.basename für effiziente Pfad- und Dateinamen Manipulation.

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!

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