Streame große Binärdateien mit urllib2 in Datei
Ich den folgenden code verwenden, zum streamen von großen Dateien aus dem Internet in eine lokale Datei:
fp = open(file, 'wb')
req = urllib2.urlopen(url)
for line in req:
fp.write(line)
fp.close()
Funktioniert es, aber es lädt Recht langsam. Gibt es einen schnelleren Weg? (Die Dateien sind sehr groß, so dass ich nicht wollen, um Sie in den Speicher.)
InformationsquelleAutor der Frage hoju | 2009-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kein Grund zu arbeiten zeilenweise (kleine Stücke UND erfordert Python zu finden, die Linie endet für Sie!-), nur Stück es bis in größere Stücke, z.B.:
Experimentieren Sie ein wenig mit verschiedenen Blockgrößen zu finden, die "sweet-spot" für Ihre Anforderungen.
InformationsquelleAutor der Antwort Alex Martelli
Können Sie auch shutil:
InformationsquelleAutor der Antwort Tiago
Ich verwendet, um zu verwenden
mechanize
Modul und die Browser.retrieve () - Methode. In der Vergangenheit dauerte es 100% CPU und heruntergeladene Dinge sehr langsam, aber einige der neuesten Version wurde dieser Fehler behoben und funktioniert sehr schnell.Beispiel:
Mechanisieren basiert auf urllib2, so urllib2 können auch ähnliche Methode... aber ich kann es nicht finden jetzt.
InformationsquelleAutor der Antwort liori
Können Sie das urllib.abrufen (), um die download-Dateien:
Beispiel:
InformationsquelleAutor der Antwort Aravindh