Flush Print Output em Python

Muhammad Waiz Khan 10 outubro 2023
  1. Flush Print Output em Python usando o parâmetro flush na função print()
  2. Descarregue a saída de impressão em Python usando o método sys.stdout.flush()
  3. Libere a saída de impressão em Python usando o sinalizador -u
Flush Print Output em Python

Neste tutorial, discutiremos as várias maneiras de liberar a saída das funções de impressão como print() e sys.stdout.write() para a tela em Python. Geralmente, as funções de entrada e saída armazenam os dados em um buffer para melhorar o desempenho do programa. Portanto, para diminuir o número de chamadas do sistema, os dados são armazenados primeiro em um buffer e depois gravados na tela, em vez de gravá-los na tela ou arquivo, caractere por caractere, etc.

Este tutorial explicará os vários métodos para definir as funções de impressão para liberar à força os dados em cada chamada, em vez de armazená-los em buffer.

Flush Print Output em Python usando o parâmetro flush na função print()

O argumento flush da função print() pode ser definido como True para parar a função de armazenar em buffer os dados de saída e forçá-los a limpá-los. Se o argumento flush for definido como True, a função print() não armazenará os dados em buffer para aumentar a eficiência e continuará liberando-os em cada chamada.

O código de exemplo abaixo demonstra como fazer a função print() para liberar forçosamente a saída de impressão em Python.

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

Descarregue a saída de impressão em Python usando o método sys.stdout.flush()

A outra maneira de liberar os dados de saída durante a impressão é usando sys.stdout.flush() do módulo sys do Python. O sys.stdout.flush() forçará as funções de impressão que podem ser print() ou sys.stdout.write() para escrever a saída na tela ou arquivo em cada chamada e não armazená-la em buffer.

O exemplo de código a seguir demonstra como usar o método sys.stdout.flush() para liberar os dados de saída da impressão:

import sys

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

Libere a saída de impressão em Python usando o sinalizador -u

Podemos passar o sinalizador -u para o intérprete durante a execução do arquivo .py, ele forçará stdin, stdout e stderr a não armazenar em buffer e liberar os dados durante a execução do arquivo .py.

O exemplo a seguir demonstra como usar o sinalizador -u para liberar a saída de impressão em Python.

python -u mycodefile.py

Artigo relacionado - Python Print