WGet Output in Python Programm

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nyrk
User
Beiträge: 16
Registriert: Freitag 17. April 2009, 22:18

Hi,


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

Gruß

Nyrk
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

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
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@Nyrk:
Schau Dir mal das Modul urllib an, da dürfte was für Dich dabei sein.
Nyrk
User
Beiträge: 16
Registriert: Freitag 17. April 2009, 22:18

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
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Da hab ich noch einen:
urllib2 nehmen und byte-ranges im Requestheader von Hand setzen. (Einzig mir bekannte Möglichkeit, via http zu "resumen".)
Nyrk
User
Beiträge: 16
Registriert: Freitag 17. April 2009, 22:18

ok, ich würds probieren, doch wie kann ich da ne progress anzeige einbauen?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nyrk
User
Beiträge: 16
Registriert: Freitag 17. April 2009, 22:18

Ja danke! Das reicht mir erst einmal..Alles andere werde ich schon selbsr herausfinden.

Gruß
lunar

Mit Hilfe des progressbar-Moduls kann man sowas auch selbst implementieren ;)
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Unless it's more then 999 terabytes of course.
Es ist aber immer noch weniger als und nicht weniger dann :P
lunar

Danke :) Allerdings hab ich diese Funktion nicht selbst geschrieben, sondern lediglich kopiert ;)
Antworten