Acabo de tener este problema. Todavía puede usar \r
, incluso en el símbolo del sistema de Windows, sin embargo, solo lo lleva al salto de línea anterior (\n
).
Si haces algo como esto:
cnt = 0
print str(cnt)
while True:
cnt += 1
print "\r" + str(cnt)
que obtendrá:
0
1
2
3
4
5
...
Eso es porque \r
solamente se remonta a la última línea. Como ya escribió un carácter de línea nueva con la última instrucción de impresión, el cursor va desde el comienzo de una nueva línea vacía hasta el comienzo de la misma nueva línea vacía.
Para ilustrar, después de imprimir el primer 0, el cursor estaría aquí:
0
| # <-- Cursor
Cuando \r
, vas al principio de la línea. Pero ya estás en el comienzo de la línea.
La solución es evitar imprimir un carácter \n
, por lo que el cursor está en la misma línea y \r
sobrescribe el texto correctamente. Puedes hacerlo con print 'text',
. La coma impide la impresión de un carácter de nueva línea.
cnt = 0
print str(cnt),
while True:
cnt += 1
print "\r" + str(cnt),
Ahora reescribirá correctamente las líneas.
Tenga en cuenta que esto es Python 2.7, de ahí las declaraciones print
.
Mi [pregunta] (http://stackoverflow.com/questions/51212/how-to-write-a-download-progress-indicator-in-python) sobre un pitón Descargar El indicador de progreso puede ser útil. – cschol