Warum sollten Sie urlopen anstelle von urlretrieve verwenden, um Python-Dateien herunterzuladen?

Fazit

Verwenden Sie urlopen. Da urlretrieve zu Beginn des Downloads eine Datei erstellt, bleiben unvollständige Dateien erhalten, wenn der Download fehlschlägt oder unterbrochen wird.

Überblick

Beim Herunterladen einer Datei in Python lautet die einfachste Beschreibung urlretrieve.

urlretrieve


import urllib

urllib.request.urlretrieve(download_url, save_dir)

urlretrieve scheint veraltet "zu sein. Wenn Sie dasselbe tun, scheint urlopen empfohlen zu werden. Allerdings ist urlopen ein wenig wie folgt, aber die Beschreibung ist kompliziert. Wenn es also kein Problem gibt, würde ich gerne URL Retrieve verwenden.

urlopen


import urllib
data = urllib.request.urlopen(download_url).read()
with open(save_dir, mode="wb") as f:
    f.write(data)

urlopen VS urlretrieve

urlopen hat den Vorteil, dass die Timeout-Option verfügbar ist, aber das ist trivial. Es gibt Hauptgründe, warum Sie urlretrieve </ b> nicht verwenden sollten. Es ist wie folgt.

--urlretireve erstellt zu Beginn des Downloads eine Datei. --urlopen erstellt nach Abschluss des Downloads eine Datei.

urlretireve generiert die Datei zuerst, unabhängig vom Erfolg oder Misserfolg des Downloads. Es ist ein Bild des Schreibens von Daten in die erstellte Datei zu jeder Zeit. Mit anderen Worten, wenn der Download fehlschlägt oder aus irgendeinem Grund unterbrochen wird, wird eine unvollständige Datei erstellt (es handelt sich um eine beschädigte Datei, die überhaupt nicht gelesen werden kann).

Am Ende

Ich war ein bisschen süchtig danach, aber ich hatte keine Informationen, also schrieb ich einen Artikel. Ich denke, es ist ein fatales Problem, also benutze kein Uriretrieve.

Recommended Posts

Warum sollten Sie urlopen anstelle von urlretrieve verwenden, um Python-Dateien herunterzuladen?
Warum Pandas verwenden? Apply ()
[Python] Zusammenfassung der Verwendung von Pandas
[Python2.7] Zusammenfassung der Verwendung von unittest
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Verwenden Sie boto, um Dateien auf s3 hoch- / herunterzuladen.
[Frage] Wie verwende ich plot_surface von Python?
[Python] Verwendung von zwei Arten von type ()
Zusammenfassung zum Importieren von Dateien in Python 3
Zusammenfassung der Verwendung von MNIST mit Python
Stapelkonvertierung von Excel-Dateien in JSON [Python]
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Sie sollten wissen, ob Sie Python verwenden! 10 nützliche Bibliotheken
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
Verwenden Sie für Python-URL-Verknüpfungen urlparse.urljoin anstelle von os.path.join
Verwendung von Python Kivy ~ ~ Grundlagen der Kv-Sprache ~
So laden Sie Dateien von Selenium of Python in Chrome herunter
python> shutil.copytree ()> Dateien nicht überschreiben> stattdessen distutils.dir_util.copy_tree () verwenden
Site-Hinweise zur Verwendung von NetworkX mit Python
Drei Gründe, warum Menschen, die maschinelles Lernen lernen, Python verwenden sollten
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
[Python] Verwenden Sie diese Option, um WAV-Dateien zu lesen und zu schreiben. [WAVIO]
[Kostenlos zu verwenden] 7 Lernseiten, auf denen Sie Python lernen können
Wenn Sie mehrere Versionen derselben Python-Bibliothek verwenden möchten (virtuelle Umgebung mit venv)
python3: Verwendung der Flasche (2)
[Python] Verwendung von Liste 1
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes
Beachten Sie, was Sie getan haben, um Flycheck mit Python zu verwenden
Sie sollten die Option --color = always des Befehls grep nicht verwenden
Verwendung von Funktionen in separaten Dateien Perl-Version und Python-Version
Beispiel zur Verwendung nach OAuth-Authentifizierung der BOX-API mit Python
Verwendung von Python Kivy (Referenz) -Ich habe die Kivy-Sprache der API-Referenz übersetzt-
Grundlegende Grammatik des Python3-Systems (Verwendung von Funktionen, Schließung, Lambda-Funktion)
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
Unverzichtbar, wenn Sie Python verwenden! Wie man Numpy benutzt, um Berechnungen zu beschleunigen!