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