2010-06-12 6 views
2

Je n'arrive pas à obtenir l'option RESUME_FROM pour fonctionner. Voici quelques exemples de code que j'ai testé avec:PycURL RESUME_FROM

import os 
import pycurl 
import sys 

def progress(total, existing, upload_t, upload_d): 
    try: 
     frac = float(existing)/float(total) 
    except: 
     frac = 0 
    sys.stdout.write("\r%s %3i%%" % ("file", frac*100) ) 

url = "http://launchpad.net/keryx/stable/0.92/+download/keryx_0.92.4.tar.gz" 
filename = url.split("/")[-1].strip() 

def test(debug_type, debug_msg): 
    print "debug(%d): %s" % (debug_type, debug_msg) 

c = pycurl.Curl() 
c.setopt(pycurl.URL, url) 
c.setopt(pycurl.FOLLOWLOCATION, 1) 
c.setopt(pycurl.MAXREDIRS, 5) 

# Setup writing 
if os.path.exists(filename): 
    f = open(filename, "ab") 
    c.setopt(pycurl.RESUME_FROM, os.path.getsize(filename)) 
else: 
    f = open(filename, "wb") 
c.setopt(pycurl.WRITEDATA, f) 

#c.setopt(pycurl.VERBOSE, 1) 
c.setopt(pycurl.DEBUGFUNCTION, test) 
c.setopt(pycurl.NOPROGRESS, 0) 
c.setopt(pycurl.PROGRESSFUNCTION, progress) 
c.perform() 

Répondre

3

Il reprenait en fait bien, mais il semblait commencer à partir du début parce que la longueur de os.path.getsize (nom de fichier) n'a pas été ajouté à existant dans la fonction de progression. Juste une erreur mineure! :)

Questions connexes