Konsolenausgabe in eine Datei umleiten
In Python können Entwickler durch die Umleitung des stdout-Streams in eine Datei gedruckte Ausgaben erfassen und speichern. Um dies zu erreichen, kann das sys.stdout-Attribut manipuliert werden. Es wurde jedoch kürzlich ein Problem gemeldet, bei dem der in der ursprünglichen Frage beschriebene Ansatz nicht die gewünschte Ausgabe generiert.
Problemlösung
Das Problem liegt im Falschen Verwendung des Parameters file= beim Drucken. In Python-Versionen 3.x und höher lautet die korrekte Syntax print('Filename:', filename, file=f). Verwenden Sie für Python 2.x print >> f, 'Dateiname:', Dateiname.
Alternativ kann die with-Anweisung verwendet werden, um stdout prägnanter umzuleiten:
with open('output.txt', 'w') as f: with redirect_stdout(f): print('Filename:', filename)
Zusätzliche Methoden
Neben der Verwendung von sys.stdout gibt es noch andere Methoden zur Umleitung Ausgabe:
Verwenden eines Dateiobjekts:Schreiben Sie direkt in ein Dateiobjekt, wie unten gezeigt:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f)
Externe Shell-Umleitung: Verwenden Sie die > Operator in der Shell, um die Ausgabe umzuleiten:
./script.py > out.txt
Fehlerbehebung
Stellen Sie im bereitgestellten Skript sicher:
Verbessertes Ergebnis
Verwendung der korrigierten Syntax und eines Dateiobjekts, Die erwartete Ausgabe wäre:
Filename: ERR001268.bam Readlines finished! Mean: 233 SD: 10 Interval is: (213, 252)
Diese aktualisierte Version des Skripts erfasst die Ausgabe und leitet sie in die Datei „output.txt“ um.
Das obige ist der detaillierte Inhalt vonWie kann ich die Konsolenausgabe in Python in eine Datei umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!