我正在尝试使用此处的代码提取压缩文件夹。
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 /文件夹本身的文件。
答案 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)