给定该目录的路径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] 删除。
我来说两句