2016-02-15 2 views
0

J'ai ce codezipfile.ZipFile seulement extraire un dossier

def downloadupdate(): 
    url = 'http://myurl.com/o/test/list.zip' 
    destination = xbmc.translatePath('special://home/userdata/addon_data/iupdatefix/Super.zip') 
    urllib.urlretrieve(url,destination) 
    time.sleep(40) 

    updatezip = xbmc.translatePath('special://home/userdata/addon_data/iupdatefix/Super.zip') 
    extractupdate = xbmc.translatePath('special://home/userdata/addon_data/plugin.program.test/') 
    oldfav = xbmc.translatePath('special://home/userdata/addon_data/plugin.program.test/test') 
    yeszip = os.path.exists(updatezip) 
    shutil.rmtree(oldfav, ignore_errors=False) 
    time.sleep(10) 
    if yeszip: 
     gh = open(updatezip, 'rb') 
     zp = zipfile.ZipFile(gh) 
     for name in zp.namelist(): 
      zp.extract(name, extractupdate) 
      gh.close() 
      time.sleep(3) 
    else: 
     xbmc.executebuiltin("Notification(some text, sometext,()") 

downloadupdate() 

correctement les téléchargements de fichiers zip le fichier zip enregistre dans l'emplacement correct les correctement supprime l'intérieur super.zip il y a 12 répertoires et chacun si ces douze répertoires sont des fichiers test.txt Lorsque j'extrait Super.zip, il n'extrait que l'un des douze répertoires et ce répertoire extrait est vide. Se pourrait-il que je doive en quelque sorte arrêter ou fermer le processus shutil? et comme son extraction, il est effacé en même temps par shutil? Quelqu'un pourrait-il faire la lumière sur ma faute ici s'il vous plaît. Merci

+0

Sans test, difficile de voir ce qui se passe. Cela dit, essayer d'utiliser 'zp.extractall (chemin, pwd)' au lieu d'extraire. Je ne vois pas où vous définissez le répertoire de travail actuel, il y a donc de bonnes chances qu'il soit extrait. https://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l1030 – David

+0

http://stackoverflow.com/questions/19483775/python-zipfile-extract-doesnt-extract-all-files possible Solution –

Répondre

0

ok il travaille maintenant david a Thankyou GIRISH

def downloadupdate(): 
    url = 'http://myurl.com/o/test/list.zip' 
    destination = xbmc.translatePath('special://home/userdata/addon_data/iupdatefix/Super.zip') 
    urllib.urlretrieve(url,destination) 
    time.sleep(40) 

    updatezip = xbmc.translatePath('special://home/userdata/addon_data/iupdatefix/Super.zip') 
    extractupdate = xbmc.translatePath('special://home/userdata/addon_data/plugin.program.test/') 
    oldfav = xbmc.translatePath('special://home/userdata/addon_data/plugin.program.test/test') 
    yeszip = os.path.exists(updatezip) 
    shutil.rmtree(oldfav, ignore_errors=False) 
    time.sleep(10) 
    if yeszip: 
     gh = open(updatezip, 'rb') 
     zp = zipfile.ZipFile(gh) 
     zp.extractall(extractupdate) 
     gh.close() 
     time.sleep(3) 
    else: 
     xbmc.executebuiltin("Notification(some text, sometext,()") 

downloadupdate()