Vaciar la salida de impresión en Python

Muhammad Waiz Khan 10 octubre 2023
  1. Limpiar la salida de impresión en Python usando el parámetro flush en la función print()
  2. Vaciar la salida de impresión en Python usando el método sys.stdout.flush()
  3. Vaciar la salida de impresión en Python usando el indicador -u
Vaciar la salida de impresión en Python

En este tutorial, discutiremos las diversas formas de descargar la salida de las funciones de impresión como print() y sys.stdout.write() a la pantalla en Python. Generalmente, las funciones de entrada y salida almacenan los datos en un búfer para mejorar el rendimiento del programa. Por lo tanto, para reducir el número de llamadas al sistema, los datos se almacenan primero en un búfer y luego se escriben en la pantalla, en lugar de escribirlos en la pantalla o archivo, carácter a carácter, etc.

Este tutorial explicará los múltiples métodos para configurar las funciones de impresión para vaciar forzosamente los datos en cada llamada en lugar de almacenarlos en búfer.

Limpiar la salida de impresión en Python usando el parámetro flush en la función print()

El argumento flush de la función print() se puede establecer en True para evitar que la función almacene en búfer los datos de salida y los vacíe a la fuerza. Si el argumento flush se establece en True, la función print() no almacenará los datos en el búfer para aumentar la eficiencia y seguirá descargándolos en cada llamada.

El código de ejemplo a continuación demuestra cómo hacer que la función print() elimine a la fuerza la salida de impresión en Python.

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

Vaciar la salida de impresión en Python usando el método sys.stdout.flush()

La otra forma de vaciar los datos de salida mientras se imprimen es usando el sys.stdout.flush() del módulo sys de Python. El sys.stdout.flush() forzará las funciones de impresión que pueden ser print() o sys.stdout.write() para escribir la salida en la pantalla o archivo en cada llamada y no almacenarlo en búfer.

El siguiente ejemplo de código demuestra cómo usar el método sys.stdout.flush() para vaciar los datos de salida de la impresión:

import sys

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

Vaciar la salida de impresión en Python usando el indicador -u

Podemos pasar la bandera -u al intérprete mientras se ejecuta el archivo .py, esto obligará a stdin, stdout y stderr a no almacenar en búfer y vaciar los datos mientras se ejecuta .py expediente.

El siguiente ejemplo demuestra cómo usar la marca -u para limpiar la salida de impresión en Python.

python -u mycodefile.py

Artículo relacionado - Python Print