Heim >Backend-Entwicklung >Python-Tutorial >Warum wird mein Python-Skript nicht sofort gedruckt?
Ausgabepufferung in Python
In Python puffert die Druckfunktion standardmäßig die Ausgabe, um die Leistung zu verbessern. Dadurch wird verhindert, dass das Terminal die Ausgabe sofort anzeigt, was bei der Überwachung des Fortschritts eines Skripts problematisch sein kann.
Warum es puffert
Das Terminal ist ein separates Programm, das kommuniziert mit Ihrem Python-Skript. Durch die Pufferung wird der Aufwand für das Senden von Text an das Terminal reduziert, indem dieser intern gespeichert wird, bis eine bestimmte Menge angesammelt wurde oder ein Zeilenumbruchzeichen gefunden wird.
Behebung des Problems
Sofortiger Einzeldruck
Um sofort zu drucken, müssen Sie den Ausgabepuffer explizit leeren. Verwenden Sie in Python 3.x das Flush-Argument in der Druckfunktion:
for step in steps: run_simulation(step) print('.', end=' ', flush=True)
In Python 2.x rufen Sie die .flush-Methode im Standardausgabestream auf:
for step in steps: run_simulation(step) print '.', sys.stdout.flush()
Pufferung deaktivieren
Um die Pufferung der Ausgabezeile vollständig zu deaktivieren, können Sie den Puffer ändern Größe:
import sys sys.stdout.buffer.write(bytearray('Hello', 'utf-8')) # Use bytearray for Python 3.x sys.stdout.buffer.flush() # Manually flush the buffer as needed
Alternativ können Sie den ungepufferten Wrapper verwenden:
import sys with open(sys.stdout.fileno(), mode='w', buffering=0) as f: # Writes directly to the terminal without buffering f.write('Hello')
Das obige ist der detaillierte Inhalt vonWarum wird mein Python-Skript nicht sofort gedruckt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!