Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die Konsolenausgabe in Python in eine Datei umleiten?

Wie kann ich die Konsolenausgabe in Python in eine Datei umleiten?

DDD
Freigeben: 2024-12-06 17:54:14
Original
788 Leute haben es durchsucht

How Can I Redirect Console Output to a File in Python?

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)
Nach dem Login kopieren

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)
    Nach dem Login kopieren
  • Externe Shell-Umleitung: Verwenden Sie die > Operator in der Shell, um die Ausgabe umzuleiten:

    ./script.py > out.txt
    Nach dem Login kopieren

Fehlerbehebung

Stellen Sie im bereitgestellten Skript sicher:

  • Der angegebene Pfad (/home/xxx/nearline/bamfiles) enthält gültige .bam Dateien
  • Die Funktion glob.glob identifiziert diese Dateien korrekt
  • Der vollständige Pfad zur ausführbaren Datei von samtools ist korrekt (/share/bin/samtools/samtools)

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage