我使用here中的代码从目录中创建zip文件。我给函数一个GUI的文件夹的绝对路径。目前,说路径是c:\ users ......,zip文件夹结构是用户......
如何删除绝对路径位并且只有zip文件使用的路径的结束文件夹?我理解结果是正确的,因为我所描述的是os.walk的结果,但我想剥离绝对路径。
def zipdir(path, zip):
for root, dirs, files in os.walk(path):
for file in files:
zip.write(os.path.join(root, file))
答案 0 :(得分:1)
这样做:
def zipdir(path, zip):
path = os.path.abspath(path)
for root, dirs, files in os.walk(path):
dest_dir = root.replace(os.path.dirname(path), '', 1)
for file in files:
zip.write(os.path.join(root, file), arcname=os.path.join(dest_dir, file))
这会将给定的path
转换为绝对路径,其目录名称用于删除root
中的主要路径组件。