Je suis en train d'écrire une petite application pour télécharger des fichiers par http (comme, par exemple, décrit aquí ).
Je souhaite également inclure un petit indicateur de la progression du téléchargement, indiquant le pourcentage de la progression du téléchargement.
Voici ce que j'ai trouvé :
sys.stdout.write(rem\_file + "...")
urllib.urlretrieve(rem\_file, loc\_file, reporthook=dlProgress)
def dlProgress(count, blockSize, totalSize):
percent = int(count\*blockSize\*100/totalSize)
sys.stdout.write("%2d%%" % percent)
sys.stdout.write("\\b\\b\\b")
sys.stdout.flush()
Sortie : MonNomDeFichier... 9%
Avez-vous d'autres idées ou recommandations pour ce faire ?
Une chose qui est quelque peu ennuyeuse est le curseur clignotant dans le terminal sur le premier chiffre du pourcentage. Existe-t-il un moyen d'empêcher cela ? Existe-t-il un moyen de masquer le curseur ?
EDITAR:
Voici une meilleure alternative en utilisant une variable globale pour le nom de fichier dans dlProgress et le ' \r code :
global rem\_file # global variable to be used in dlProgress
urllib.urlretrieve(rem\_file, loc\_file, reporthook=dlProgress)
def dlProgress(count, blockSize, totalSize):
percent = int(count\*blockSize\*100/totalSize)
sys.stdout.write("\\r" + rem\_file + "...%d%%" % percent)
sys.stdout.flush()
Sortie : MonNomDeFichier...9%
Et le curseur apparaît à la FIN de la ligne. C'est beaucoup mieux.