Télécharger progressbar pour Python 3
J'ai besoin d'un progrès pendant le téléchargement de fichiers pour Python 3.
J'ai vu quelques sujets sur Stackoverflow, mais vu que je suis un noob en programmation et personne n'a posté un exemple complet, quelques fractions de celle-ci ou celle qui me permet de travailler sur Python 3, aucun n'est bon pour moi...
informations supplémentaires:
ok, donc j'ai ceci:
from urllib.request import urlopen
import configparser
#checks for files which need to be downloaded
print(' Downloading...')
file = urlopen(file_url)
#progress bar here
output = open('downloaded_file.py','wb')
output.write(file.read())
output.close()
os.system('downloaded_file.py')
script est exécuté via python en ligne de commande
- À cette question, il manque beaucoup d'informations utiles: Où voulez-vous cette barre de progression? Dans la console? Sur une page web? Dans certaines applications de bureau? Comment êtes-vous de télécharger le fichier? etc etc
- (urllib2 en Python 2 est plus ou moins le même que urllib en Python 3)
- j'ai remarqué que urllib.demande en python 3 est ce que urllib2 python 2... corrigez-moi si je me trompe...
- Connexes: Texte de la Barre de Progression dans la Console
- le lien est utile (pour ceux qui ont besoin de Python 2). Vous pouvez déplacer le lien dans les commentaires si vous souhaitez¶ Python 3 code peut être amélioré (et, par conséquent, il n'est pas utile pour prévenir de futures réponses).
- Connexes: Python urllib2 Progrès Crochet
InformationsquelleAutor Mirac7 | 2012-12-14
Vous devez vous connecter pour publier un commentaire.
Il est
urlretrieve()
que les téléchargements d'une url vers un fichier et permet de spécifier un reporthook rappel de rapport de progression:Voici un GUI barre de progression:
Sur Python 3.3
urlretrieve()
a différentesreporthook
interface (voir l'émission de 16409). Pour contourner cela, vous pouvez accéder à l'interface précédente viaFancyURLopener
:Pour mettre à jour la barre de progression dans le même thread, vous pourriez inline
urlretrieve()
code:reporthook
?t = time.monotonic(); speed = blocksize / (t - last[0]); average_speed = readsofar / (t - start); last[0] = t
Je pense que ce morceau de code peut vous aider. Je ne suis pas tout à fait sûr que c'est exactement ce que vous voulez. Au moins, il devrait vous donner quelque chose à travailler.
Cela fonctionne, je l'ai essayé.
file.readlines()
à une variable?Content-Length
en-tête comme urlretrieve() n'. Il vous permettra d'afficher le pourcentage d'avancement.