J'ai juste eu ce problème. Vous pouvez toujours utiliser \r
, même dans Windows Invite de commandes, cependant, il vous ramène uniquement au saut de ligne précédent (\n
).
Si vous faites quelque chose comme ceci:
cnt = 0
print str(cnt)
while True:
cnt += 1
print "\r" + str(cnt)
Vous obtiendrez:
0
1
2
3
4
5
...
C'est parce que \r
ne remonte à la dernière ligne. Puisque vous avez déjà écrit un caractère de nouvelle ligne avec la dernière instruction d'impression, votre curseur va du début d'une nouvelle ligne vide au début de la même nouvelle ligne vide.
Pour illustrer, après avoir imprimé le premier 0, votre curseur serait ici:
0
| # <-- Cursor
Lorsque vous \r
, vous allez au début de la ligne. Mais vous êtes déjà au début de la ligne.La solution est d'éviter d'imprimer un caractère \n
, donc votre curseur est sur la même ligne et \r
écrase le texte correctement. Vous pouvez le faire avec print 'text',
. La virgule empêche l'impression d'un caractère de nouvelle ligne.
cnt = 0
print str(cnt),
while True:
cnt += 1
print "\r" + str(cnt),
Maintenant, il va correctement réécrire les lignes. Notez que c'est Python 2.7, d'où les instructions print
.
Ma [question] (http://stackoverflow.com/questions/51212/how-to-write-a-download-progress-indicator-in-python) au sujet d'un Python Télécharger L'indicateur de progression pourrait être utile. – cschol