Basicamente, eu quero fazer o oposto do que esse cara fez ... hehe.
Script Python: imprime uma nova linha a cada vez para o shell em vez de atualizar a linha existente
Eu tenho um programa que está me dizendo o quão longe está.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Então, se len (alguma_lista) fosse 50, eu imprimiria a última linha 50 vezes. Quero imprimir uma linha e continuar atualizando essa linha. Eu sei, eu sei que esta é provavelmente a pergunta mais idiota que você vai ler o dia todo. Simplesmente não consigo descobrir as quatro palavras que preciso colocar no google para obter a resposta.
Atualizar! Eu tentei a sugestão do mvds que PARECEU certa. O novo código
print percent_complete," \r",
O percentual completo é apenas uma string (eu estava abstraindo da primeira vez, agora estou tentando ser literal). O resultado agora é que ele executa o programa, não imprime NADA até que o programa termine e imprime "100 por cento concluído" em uma e somente uma linha.
Sem o retorno de carro (mas com a vírgula, metade da sugestão do mvds) ele não imprime nada até o final. E então imprime:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
E assim por diante. Portanto, o novo problema é que, com a vírgula, ela não imprime até que o programa seja concluído.
Com o retorno de carro e sem vírgula, ele se comporta da mesma forma que nenhum.
sys.stdout.isatty()
para não cuspir essas coisas quando não estiver executando em um terminal.