ここにあるコードを使用して、zipフォルダーを抽出しようとしています。
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-content /
--- somefile.php
-wp-config.php
-index.php
ルートフォルダーまたはwordpress /の下のフォルダーにあるファイルのみを取得します。だから私はwordpress/wp-content/somefile.phpを取得しますが、wordpress /フォルダー自体のファイルは取得しません。
最初に調べる場所は ドキュメント です。
ZipFile.extractall([path[, members[, pwd]]])
それをあなたの状況に適用して、私は試してみます:
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
zf.extractall(dest_dir)
以下で定義されているunzip
が必要です。
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
zf.extractall(dest_dir)