Flush Print Output in Python

Muhammad Waiz Khan 10 ottobre 2023
  1. Flush Print Output in Python Usando il parametro flush nella funzione print()
  2. Svuota l’output di stampa in Python usando il metodo sys.stdout.flush()
  3. Svuota l’output di stampa in Python usando il flag -u
Flush Print Output in Python

In questo tutorial, discuteremo i vari modi per scaricare l’output delle funzioni di stampa come print() e sys.stdout.write() sullo schermo in Python. In genere, le funzioni di input e output memorizzano i dati in un buffer per migliorare le prestazioni del programma. Pertanto, per ridurre il numero di chiamate di sistema, i dati vengono prima memorizzati in un buffer e poi scritti sullo schermo, invece di scriverli sullo schermo o sul file, carattere per carattere, ecc.

Questo tutorial spiegherà i diversi metodi per impostare le funzioni di stampa per scaricare forzatamente i dati su ogni chiamata invece di bufferizzarli.

Flush Print Output in Python Usando il parametro flush nella funzione print()

L’argomento flush della funzione print() può essere impostato su True per fermare la funzione dal bufferizzare i dati di output e scaricarli forzatamente. Se l’argomento flush è impostato su True, la funzione print() non memorizzerà i dati per aumentare l’efficienza e continuerà a scaricarli ad ogni chiamata.

Il codice di esempio sotto mostra come fare in modo che la funzione print() scarichi forzatamente l’output di stampa in Python.

print("This is my string", flush=True)

Svuota l’output di stampa in Python usando il metodo sys.stdout.flush()

L’altro modo per scaricare i dati di output durante la stampa è usare sys.stdout.flush() del modulo sys di Python. Il sys.stdout.flush() costringerà le funzioni di stampa che possono essere print() o sys.stdout.write() a scrivere l’output sullo schermo o sul file ad ogni chiamata e non bufferizzarlo.

Il seguente esempio di codice mostra come utilizzare il metodo sys.stdout.flush() per scaricare i dati di output della stampa:

import sys

sys.stdout.write("This is my string")
sys.stdout.flush()

Svuota l’output di stampa in Python usando il flag -u

Possiamo passare il flag -u all’interprete durante l’esecuzione del file .py, costringerà stdin, stdout e stderr a non bufferizzare e scaricare i dati durante l’esecuzione di .py file.

L’esempio seguente mostra come utilizzare il flag -u per scaricare l’output di stampa in Python.

python -u mycodefile.py

Articolo correlato - Python Print