Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python zipfile.zipfile仅提取一个文件夹_Python_Module_Zipfile_Shutil - Fatal编程技术网

Python zipfile.zipfile仅提取一个文件夹

Python zipfile.zipfile仅提取一个文件夹,python,module,zipfile,shutil,Python,Module,Zipfile,Shutil,我有这个密码 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

我有这个密码

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()
zip文件下载正确 zip文件保存在正确的位置 正确地删除 在super.zip中有12个目录,如果这12个目录是test.txt文件,则每个目录中都有 当我提取Super.zip时,它只提取12个目录中的一个,而提取的目录是空的。我是否需要以某种方式停止或关闭shutil流程?当它被提取出来的时候,它同时被shutil擦除了吗?
谁能解释一下我的过错吗。谢谢你

好的,现在开始工作了。谢谢你,大卫,一个女孩子

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()

没有测试,很难看到发生了什么。也就是说,尝试使用
zp.extractall(path,pwd)
而不是extract。我看不出你在哪里设置了当前的工作目录,所以很有可能它会被解压到任何地方。可能的解决办法