Flush-Druckausgabe in Python
-
Flush der Druckausgabe in Python mit dem Parameter
flush
in der Funktionprint()
-
Flush der Druckausgabe in Python mit der Methode
sys.stdout.flush()
-
Flush der Druckausgabe in Python mit dem
-u
Flag
In diesem Tutorial werden wir die verschiedenen Möglichkeiten besprechen, die Ausgabe der Druckfunktionen wie print()
und sys.stdout.write()
in Python auf den Bildschirm zu leeren. Im Allgemeinen speichern die Ein- und Ausgabefunktionen die Daten in einem Puffer, um die Leistung des Programms zu verbessern. Um die Anzahl der Systemaufrufe zu verringern, werden die Daten daher zuerst in einem Puffer gespeichert und dann auf den Bildschirm geschrieben, anstatt sie Zeichen für Zeichen auf den Bildschirm oder in eine Datei zu schreiben.
In diesem Tutorial werden die verschiedenen Methoden erläutert, mit denen Sie die Druckfunktionen so einstellen können, dass die Daten bei jedem Aufruf zwangsweise geflusht werden, anstatt sie zu puffern.
Flush der Druckausgabe in Python mit dem Parameter flush
in der Funktion print()
Das Argument flush
der Funktion print()
kann auf True
gesetzt werden, um die Funktion davon abzuhalten, die Ausgabedaten zu puffern und sie zwangsweise zu spülen. Wenn das flush
-Argument auf True
gesetzt wird, puffert die print()
-Funktion die Daten nicht, um die Effizienz zu erhöhen, und spült sie bei jedem Aufruf.
Der folgende Beispielcode demonstriert, wie man die Funktion print()
dazu bringt, die Druckausgabe in Python zwangsweise zu spülen.
print("This is my string", flush=True)
Flush der Druckausgabe in Python mit der Methode sys.stdout.flush()
Die andere Möglichkeit, die Ausgabedaten beim Drucken zu spülen, ist die Verwendung der Methode sys.stdout.flush()
des Python-Moduls sys
. Die sys.stdout.flush()
zwingt die Druckfunktionen, die print()
oder sys.stdout.write()
sein können, die Ausgabe bei jedem Aufruf auf den Bildschirm oder in eine Datei zu schreiben und nicht zu puffern.
Das folgende Codebeispiel demonstriert, wie Sie die Methode sys.stdout.flush()
verwenden, um die Ausgabedaten des Drucks zu spülen:
import sys
sys.stdout.write("This is my string")
sys.stdout.flush()
Flush der Druckausgabe in Python mit dem -u
Flag
Wir können das -u
Flag an den Interpreter übergeben, während wir die .py
Datei ausführen. Es wird stdin
, stdout
und stderr
dazu zwingen, die Daten nicht zu puffern und zu spülen, während die .py
Datei ausgeführt wird.
Das folgende Beispiel zeigt, wie Sie das -u
-Flag verwenden, um die Druckausgabe in Python zu spülen.
python -u mycodefile.py