Fomor The Savage Skrevet 25. september 2013 Del Skrevet 25. september 2013 hei, prøver å få til å laste ned en fil fra et webdomene. tradisjonelt sett ville jeg kun bruke wget, men jeg har opplevd problemer med å få det til å funke. spesielt fordi jeg vil filtrere etter ekstensjon. med wget modulen i python ser den ut til å opprette en fil uavhengig om den er der eller ikke. vanskelig å forklare, men jeg kan jo gå etter det jeg har gjort så langt. denne modulen er brukt: https://pypi.python.org/pypi/wget scriptet: import os import wget url = "http://downloads.pcworld.com/pub/new//utility_software/ccsetup402.exe"wget.download(url) men den oppretter en fil uansett om filen er der eller ikke. vanligvis kan man gjøre --accept=exe som bryter i kommandoen, men jeg får det ikke til å funke. om det skyldes feil syntaks eller om det er fordi denne wget ikke har denne muligheten, det vet jeg ikke. men jeg hadde håpet på å få hjelp med å spesifisere filekstensjon og så laste den ned om filen eskisterer. takker på forhånd for all hjelp. Lenke til kommentar
Foxboron Skrevet 25. september 2013 Del Skrevet 25. september 2013 Lest implementasjonen av wget liben som du bruker, og den funker ikke som wget, selvom den heter det. Den emulerer hva wget gjør. Jeg anbefaler deg å bruke subprocess og bruker wget derfra, lettere og mindre tull. http://docs.python.org/2/library/subprocess.html#subprocess.call Lenke til kommentar
Fomor The Savage Skrevet 25. september 2013 Forfatter Del Skrevet 25. september 2013 Lest implementasjonen av wget liben som du bruker, og den funker ikke som wget, selvom den heter det. Den emulerer hva wget gjør. Jeg anbefaler deg å bruke subprocess og bruker wget derfra, lettere og mindre tull. http://docs.python.org/2/library/subprocess.html#subprocess.call takker for svar. jeg glemte å nevne at jeg på nåværende tidspunkt ikke bruker linux. Vil gjerne ha en innfødt python løsning, hvis mulig. har såvidt tittet på urllib, men det virker rimelig komplisert å få det til der. vil bare legge til at jeg er veldig ny på python scripting. Lenke til kommentar
Foxboron Skrevet 25. september 2013 Del Skrevet 25. september 2013 (endret) takker for svar. jeg glemte å nevne at jeg på nåværende tidspunkt ikke bruker linux. Vil gjerne ha en innfødt python løsning, hvis mulig. har såvidt tittet på urllib, men det virker rimelig komplisert å få det til der. vil bare legge til at jeg er veldig ny på python scripting. prøv import urllib urllib.urlretrieve (nettside_med_fil, fil_navn) Endret 25. september 2013 av JuletreDuden Lenke til kommentar
snippsat Skrevet 26. september 2013 Del Skrevet 26. september 2013 Bruk urlretrieve() som vist over,kan også være greit og ta ut filnavnet som f.eks. try: # Python2 from urllib import urlretrieve except ImportError: # Python3 from urllib.request import urlretrieve url = "url_adress" filename = url.split('/')[-1] urlretrieve(url, filename) Kan også nevne Requests som veldig populær,som kan gjøre mange ting bedre og enklere enn urllib. Si at "ccsetup" var enn stor fil og da kan man ønske og ikke laste hele filen til minnet som urlretrieve() gjør. import requests url = "url_adress" filename = url.split('/')[-1] r = requests.get(url, stream=True) with open(filename, 'wb') as handle: for block in r.iter_content(1024): if not block: break handle.write(block) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå