2
respostas

Como limpar a tela?

Em meus estudos, fiz um módulo simples, para mostrar o progresso de execução de um loop... tipo uma tela de "loading" de um jogo. Em cada execução, ele deveria mostrar a porcentagem já executada, aguardar um pequeno período e após isso limpar a tela e exibir o novo valor. Porém, não consigo limpar a tela....

import os
import time

i=0
f=10

def temporizador(i,f):
  percent = round((i/f)*100,2)
  print(f'{percent}%')
  if i!=f:
    time.sleep(0.01)
    os.system('cls' if os.name == 'nt' else 'clear')

while i<=f:
  temporizador(i,f)
  i += 1
2 respostas

Oii, Christoffer! Tudo bem?

Bom, como é um projeto de estudo fora do contexto da aula, consigo te ajudar com algumas sugestões, justamente por não estar integrada do código como um todo.

Um ponto de observação é que a função que está usando os.system('cls' if os.name == 'nt' else 'clear') para limpar a tela pode funcionar bem para sistemas como Linux e MacOS. Mas, com Google Colab ou outros, por exemplo, pode não funcionar.

Caso esteja usando o Colab, uma alternativa mais simples seria utilizar o argumento end='\r' na função print para imprimir na mesma linha. A cada iteração, ela substitui a linha anterior, dando a impressão de atualização na tela.

Espero que as sugestões te ajude e realize os testes, sempre adaptando-as com o seu código e com a realidade do seu projeto.

O código é só isso mesmo... esse código numa célula do Colab, é um exercício que eu me propus ao terminar os exercícios propostos na aula... usando o end='\r' funciona, mas fica esquisito, segue código funcionando:

import os
import time

i=0
f=100000

def temporizador(i,f):
  percent = round((i/f)*100,2)
  print(percent,'%', end='\r')
  if i==f:
    print(percent,'%')
while i<=f:
  temporizador(i,f)
  i += 1

Pelo que apurei aqui, o sistema rodando no Colab é POSIX (interface Unix). Portanto o comando 'clear' deveria funcionar, mas aqui não foi... Se eu enviar um !clear , ele devolve um caractere "H", o que sinaliza que o comando foi reconhecido (mas não executado). Se eu enviar um !cls , ele devolve erro (/bin/bash: line 1: cls: command not found)...

Eu acho que é alguma restrição do próprio Colab.

Mais pra frente vou instalar o Python numa máquina windows e refazer essa experiência.

Obrigado pelo suporte!