Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die „print'-Ausgabe von Python in eine Datei umleiten?

Wie kann ich die „print'-Ausgabe von Python in eine Datei umleiten?

Susan Sarandon
Susan SarandonOriginal
2024-12-01 07:39:11160Durchsuche

How Can I Redirect Python's `print` Output to a File?

„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!

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