Heim > Backend-Entwicklung > Python-Tutorial > Wie leite ich die Python-Druckausgabe ordnungsgemäß in eine Textdatei um?

Wie leite ich die Python-Druckausgabe ordnungsgemäß in eine Textdatei um?

Susan Sarandon
Freigeben: 2024-11-27 19:43:14
Original
264 Leute haben es durchsucht

How to Properly Redirect Python Print Output to a Text File?

Python-Ausgabe in eine Textdatei umleiten

Beim Versuch, die Druckausgabe mit Python in eine Textdatei umzuleiten, können bei entsprechender Auswahl Schwierigkeiten auftreten Methode führt nicht zu den gewünschten Ergebnissen.

Problembeschreibung

Der folgende Code Die Ausgabe kann mit sys.stdout nicht in eine Datei umgeleitet werden:

f = open('output.txt','w')
sys.stdout = f

path= '/home/xxx/nearline/bamfiles'
bamfiles = glob.glob(path + '/*.bam')

for bamfile in bamfiles:
    filename = bamfile.split('/')[-1]
    print 'Filename:', filename
Nach dem Login kopieren

Lösung

Erwägen Sie die Verwendung eines Dateiobjekts zum Drucken anstelle von sys.stdout:

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x
Nach dem Login kopieren

Alternative Lösungen

  • Verwenden Sie einen Kontextmanager, um die Ausgabe umzuleiten:
from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
Nach dem Login kopieren
  • Ausgabe extern von der Shell umleiten:
./script.py > out.txt
Nach dem Login kopieren

Zusätzlich Überlegungen

  • Stellen Sie sicher, dass die Glob-Funktion die gewünschten Dateien findet.
  • Dateipfade ordnungsgemäß mit os.path.join und os.path.basename bearbeiten.

Das obige ist der detaillierte Inhalt vonWie leite ich die Python-Druckausgabe ordnungsgemäß in eine Textdatei um?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage