178 votes

Comment puis-je écrire la sortie dans le même endroit sur la console?

Je suis nouveau sur le python et suis en train d'écrire quelques scripts pour automatiser le téléchargement des fichiers à partir de serveurs FTP, etc. J'en veux pour preuve la progression du téléchargement, mais je veux rester dans la même position, telles que:

sortie:

Le Téléchargement De Fichier FooFile.txt [47%]

J'essaie d'éviter quelque chose comme ceci:

     Downloading File FooFile.txt [47%]
     Downloading File FooFile.txt [48%]
     Downloading File FooFile.txt [49%]

Comment dois-je faire?


Dupliquer: http://stackoverflow.com/questions/465348/how-can-i-print-over-the-current-line-in-a-command-line-application/465360#465360

273voto

codelogic Points 22722

Vous pouvez également utiliser le retour chariot:

sys.stdout.write("Download progress: %d%%   \r" % (progress) )
sys.stdout.flush()

48voto

RSabet Points 2887

J'aime les suivantes:

print 'Downloading File FooFile.txt [%d%%]\r'%i,

Démo:

import time

for i in range(100):
    time.sleep(0.1)
    print 'Downloading File FooFile.txt [%d%%]\r'%i,

28voto

gimel Points 30150

L'utilisation d'un terminal de manutention de la bibliothèque, comme les malédictions module:

Les malédictions module fournit une interface à la bibliothèque curses, le standard de facto pour portable avancées de gestion d'un terminal.

15voto

Zach Scrivena Points 15052

Imprimer le caractère de retour arrière \b plusieurs fois, puis remplacer l'ancien numéro avec le nouveau numéro.

8voto

#kinda like the one above but better :P

from __future__ import print_function
from time import sleep

for i in range(101):
  str1="Downloading File FooFile.txt [{}%]".format(i)
  back="\b"*len(str1)
  print(str1, end="")
  sleep(0.1)
  print(back, end="")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X