2017-09-01 4 views
0

This is the best one so farPython: einen Fortschrittsbalken zum Download Hinzufügen

ich viele Fragen auf Stackoverflow gesehen, aber keine der Antworten eine einfache elegante Methode geben.

link = "http://download.thinkbroadband.com/10MB.zip" 
file_name = "test" 
with open(file_name, "wb") as f: 
     print('Downloading: {}'.format(file_name)) 
     response = requests.get(link, stream=True) 
     total_length = response.headers.get('content-length') 

     if total_length is None: 
      f.write(response.content) 
     else: 
      dl = 0 
      total_length = int(total_length) 
      for data in response.iter_content(chunk_size=4096): 
       dl += len(data) 
       f.write(data) 
       done = int(50 * dl/total_length) 
       sys.stdout.write("\r[%s%s]" % ('=' * done, ' ' * (50-done))) 
       sys.stdout.flush() 

Kann ich etwas mehr Details erhalten, wenn eine Datei heruntergeladen wird? Alle vorherigen Fragen haben keine gute einfache Antwort.

+0

Wenn du kein Argument hast WARUM du das nicht benutzen willst, ist es schwer etwas anderes vorzuschlagen (was du wahrscheinlich auch nicht benutzen willst) – DonGru

+0

Okay meine umformulierte Frage: Ich wollte mehr Details, wenn ich Download von einem Link. – Varun

Antwort

1

Warum das Rad neu erfinden? Verwenden Sie tqdm. Folgen Sie dem Link und folgen Sie den Anweisungen, um tqdm zu importieren und einen Fortschrittsbalken für jede Iteration hinzuzufügen. Beispiel:

Lesen Sie die Beispiele im bereitgestellten Pypi-Link, um zusätzliche Informationen zu Ihrer Fortschrittsanzeige hinzuzufügen.

Verwandte Themen