Seite 1 von 1

WGet Output in Python Programm

Verfasst: Sonntag 19. April 2009, 20:39
von Nyrk
Hi,


wie stelle ich es an den WGet Output, speziell eigentlich nur die Prozentanzeige beim Download, in meinem Programm zu nutzen.

Gruß

Nyrk

Verfasst: Sonntag 19. April 2009, 20:51
von sparrow
Soviel ich weiss verwendet man externe Prozesse über os.subprocess.

Falls du mit wget Dateien herunterladen willst wäre es vielleicht sinnvoll die Funktionalität in Python nachzubilden. Das dürfte nicht zu schwierg sein und du wärst Unabhängig von externen Programmen.

Gruß
Sparrow

Verfasst: Sonntag 19. April 2009, 21:04
von jerch
@Nyrk:
Schau Dir mal das Modul urllib an, da dürfte was für Dich dabei sein.

Verfasst: Sonntag 19. April 2009, 21:12
von Nyrk
ja ich kenne urllib...aber ich würde gerne wget nehmen, das es für meine zwecke, sehr große dateien mit resume etc zu laden, sehr gut ist.

jemand noch ein paar infos

Verfasst: Sonntag 19. April 2009, 21:35
von jerch
Da hab ich noch einen:
urllib2 nehmen und byte-ranges im Requestheader von Hand setzen. (Einzig mir bekannte Möglichkeit, via http zu "resumen".)

Verfasst: Sonntag 19. April 2009, 22:04
von Nyrk
ok, ich würds probieren, doch wie kann ich da ne progress anzeige einbauen?

Re: WGet Output in Python Programm

Verfasst: Sonntag 19. April 2009, 22:30
von gerold
Nyrk hat geschrieben:wie stelle ich es an den WGet Output, speziell eigentlich nur die Prozentanzeige beim Download, in meinem Programm zu nutzen.
Hallo Nyrk!

Vielleicht genügt dir das hier:

Code: Alles auswählen

import subprocess

url = "http://cdimage.ubuntu.com/daily-live/current/jaunty-desktop-i386.iso"
dest_filename = "jaunty-desktop-i386.iso"
dest_file = file(dest_filename, "wb")
args = ["wget", "--continue", "--output-document=-", url]
p = subprocess.Popen(args, stdout = dest_file, stderr = subprocess.PIPE)
for line in p.stderr:
    print line
...oder so

Code: Alles auswählen

import subprocess

url = "http://cdimage.ubuntu.com/daily-live/current/jaunty-desktop-i386.iso"
dest_filename = "jaunty-desktop-i386.iso"
args = ["wget", "--continue", "--output-document=%s" % dest_filename, url]
p = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
for line in p.stdout:
    print line.rstrip()
mfg
Gerold
:-)

Verfasst: Montag 20. April 2009, 07:04
von Nyrk
Ja danke! Das reicht mir erst einmal..Alles andere werde ich schon selbsr herausfinden.

Gruß

Verfasst: Montag 20. April 2009, 07:20
von lunar
Mit Hilfe des progressbar-Moduls kann man sowas auch selbst implementieren ;)

Verfasst: Montag 20. April 2009, 07:41
von Dauerbaustelle
Unless it's more then 999 terabytes of course.
Es ist aber immer noch weniger als und nicht weniger dann :P

Verfasst: Montag 20. April 2009, 08:00
von lunar
Danke :) Allerdings hab ich diese Funktion nicht selbst geschrieben, sondern lediglich kopiert ;)