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
Susan SarandonOriginal
2024-11-27 19:43:14240Durchsuche

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

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

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')
  • Ausgabe extern von der Shell umleiten:
./script.py > out.txt

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!

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