Python zipfile整个路径在文件中

时间:2014-12-15 11:51:46

标签: python zipfile

我使用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))

1 个答案:

答案 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中的主要路径组件。