【发布时间】:2020-02-19 12:58:21
【问题描述】:
我有一个 zip 存档,其内部结构如下所示:
file.zip
|
--- foo/
|
--- bar/
|
--- file1.txt
|
--- dir/
|
--- file2.txt
我想使用 python3 将bar 的内容提取到输出目录,得到如下所示的内容:
output-dir/
|
--- file1.txt
|
--- dir/
|
--- file2.txt
但是,当我在bar 下面运行代码时,它的内容被提取到output-dir
import zipfile
archive = zipfile.ZipFile('path/to/file.zip')
for archive_item in archive.namelist():
if archive_item.startswith('bar/'):
archive.extract(archive_item, 'path/to/output-dir')
我该如何解决这个问题? 谢谢!
【问题讨论】:
-
不是真正的解决方案,而是一种规避问题的方法:解压到
path/to,得到path/to/bar,然后将path/to/bar重命名为path/to/output-dir。 -
更改
archive_item.startswith('file/bar/')会给出bar目录内容
标签: python python-3.x zipfile