根据固定的相对路径在zip文件中包含目录结构

用户名

给定该目录的路径a:\\b\\c\\d\\e,我想在python 3.5+中创建一个zipfile,如下所示:

file.zip # want this
 +d
  +-...files from d\
  +-e
    +-...files from e\

我尝试通过使用os遍历目标路径来尝试此操作zipfile

start_path = "a:\\b\\c\\d"

for root, dirs, files in os.walk(start_path):
    for file in files:
        ziph.write(os.path.relpath(os.path.join(root, file)))

由于therelpath和working目录位于中b,因此代码将创建一个zip文件,如下所示:

file.zip # do not want this
 +c
  +-...files from c\
  +-d
    +-...files from d\
    +-e
      +-...files from e\

我的问题是:如何强制zipwriter创建目录结构,如开头所示,从dir开始,d而我仅在运行时知道完整路径。

卢卡斯纳达卢蒂

ZipFile.write接受第二个参数,这是您希望它位于zip因此,您可以像以下内容:

start_path = "a:\\b\\c\\d"
import os
zip_start_path = start_path.split(os.sep)[-1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章