[Python-de] wget -> pget

Gerhard Häring haering_python at gmx.de
Tue Jul 2 21:35:41 EDT 2002


* Andreas Nadler <python at biopop.de> [2002-07-02 19:47 +0200]:
> Das oeffnen und schliessen von Dateien ist jetzt gar nicht so das
> Problem.  Mir geht es darum auf einer Seite *.jpgs oder aehnliches zu
> speichern.

Wie gesagt, mit urllib.urlretrieve() geht das Lesen von Web/FTP/... und
lokale Schreiben in _einem_ Aufruf.

> Wenn ich die mit readline oder readlines oeffne und dann versuche auf
> der Festplatte abzulegen, dann sieht das alles nicht so wie davor aus.

Es sind halt Binärdaten, und durch readline/readlines änderst du wohl
den Zeilenumbruch.

> Vielleicht kann mir dabei noch jemand helfen. Aber schon mal Dank fuer schon
> eingegangene Hilfe.
> 
> Hier eine Bsp. von Lutz:
> 
> <----- schnipp ----->
> 
> import urllib
> 
> page = urllib.urlopen("http://python.org").readlines()
> 
> f = open ("datei", "w")
> for line in page:
>   f.write(line)
> f.close()

Kurzversion:

urllib.urlretrieve("http://python.org", "datei")

Langversion:

page = urllib.urlopen("http://python.org").read()
f = open("datei", "wb") # Binäry-Flag nur für Windows interessant
f.write(page)
f.close()
page.close()

Wenn du befürchtest, dass die runtergeladene Datei _riesig_ sein könnte
und du blockweise lesen willst (ungetestet):

inf = urllib.urlopen("http://python.org")
outf = open("datei", "wb")
BLOCKSIZE = 1024
while 1:
    block = inf.read(BLOCKSIZE)
    if not block:
        break
    ouf.write(block)
inf.close()
outf.close()

Gerhard
-- 
This sig powered by Python!
Außentemperatur in München: 14.9 °C      Wind: 2.3 m/s



More information about the Python-de mailing list