Seite 1 von 1
					
				Dateien aus dem Internet herunterladen
				Verfasst: Sonntag 2. März 2008, 18:15
				von pot
				Hallo
Ich möchte mit Python eine Datei aus dem Internet laden. Mit urllib2 würde das auch schön gehen, leider muss ich da erst die ganze Datei (mehrere MB gross) in eine Variable speichern und erst dann auf das Dateisystem abspeichern.
Code: Alles auswählen
from urllib2 import urlopen
content = urlopen(url).read()
file = open(filename, 'w')
file.write(content)
file.close()
Diese Art finde ich allerdings sehr unschön (Speicher des Programms erhöht sich)
Gibts da Alternativen?
Grüsse
Pot
 
			 
			
					
				Re: Dateien aus dem Internet herunterladen
				Verfasst: Sonntag 2. März 2008, 18:51
				von BlackVivi
				Hm... mit urlopen öffnen und zeilenweise bzw. 100 bytes oder sowas lesen und dann schreiben in'r Schleife ._. Würde mir spontan einfallen.
			 
			
					
				
				Verfasst: Sonntag 2. März 2008, 18:53
				von veers
				Code: Alles auswählen
import shutil
import urllib2
source = urllib2.urlopen(url)
destination = open(filename, 'w')
shutil.copyfileobj(source, destination)
source.close()
destination.close()
So? 

 
			 
			
					
				
				Verfasst: Sonntag 2. März 2008, 19:04
				von pot
				Danke, funktioniert wunderbar 
Grüsse
Pot
 
			 
			
					
				
				Verfasst: Sonntag 2. März 2008, 21:03
				von EyDu
				
			 
			
					
				
				Verfasst: Sonntag 2. März 2008, 21:20
				von gerold
				Hallo!
Und ich möchte noch ``urllib.urlretrieve`` einwerfen.
mfg
Gerold

 
			 
			
					
				
				Verfasst: Dienstag 4. März 2008, 17:59
				von pot
				Ist ja noch kürzer, danke.
Ist es mit urllib.urlretrieve möglich, einen "Ladebalken" zu erstellen?
Grüsse
Pot
			 
			
					
				
				Verfasst: Dienstag 4. März 2008, 18:06
				von Trundle
				pot hat geschrieben:Ist es mit urllib.urlretrieve möglich, einen "Ladebalken" zu erstellen
Ja, man kann als drittes Argument eine Funktion übergeben, die dann aufgerufen wird, wenn ein Daten-Block gelesen wurde. Mehr dazu steht in der 
Dokumentation.
 
			 
			
					
				
				Verfasst: Dienstag 4. März 2008, 18:08
				von pot
				Trundle hat geschrieben:pot hat geschrieben:Ist es mit urllib.urlretrieve möglich, einen "Ladebalken" zu erstellen
Ja, man kann als drittes Argument eine Funktion übergeben, die dann aufgerufen wird, wenn ein Daten-Block gelesen wurde. Mehr dazu steht in der 
Dokumentation.
 
Danke dir.
Gruss
Pot