Python zipfile.extract()不提取所有文件

时间:2013-10-20 22:46:58

标签: python zip extract

我正在尝试使用此处的代码提取压缩文件夹。

def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:

    for member in zf.infolist():
        words = member.filename.split('/')
        path = dest_dir
        for word in words[:-1]:
            drive, word = os.path.splitdrive(word)
            head, word = os.path.split(word)
            if word in (os.curdir, os.pardir, ''): continue
            path = os.path.join(path, word)
        zf.extract(member, path)

但是当试图提取例如带有目录结构的wordpress.zip时 WordPress的/
-wp内容/
--- somefile.php
-wp-config.php文件
-index.php
在这种情况下,我只获取根文件夹或wordpress /下面的文件夹中的文件。所以我得到wordpress / wp-content / somefile.php但不是wordpress /文件夹本身的文件。

2 个答案:

答案 0 :(得分:21)

首先要看的是the documentation

ZipFile.extractall([path[, members[, pwd]]])

将它应用于您的情况,我会尝试:

def unzip(source_filename, dest_dir):
    with zipfile.ZipFile(source_filename) as zf:
        zf.extractall(dest_dir)

答案 1 :(得分:0)

unzip(定义如下)是您想要的。

def unzip(source_filename, dest_dir):
    with zipfile.ZipFile(source_filename) as zf:
        zf.extractall(dest_dir)