python中没有原始目录结构的ZIP文件

时间:2019-03-25 01:13:10

标签: django python-3.x zipfile

我有一种情况要确保在创建zip文件时,在解压缩文件时它不会包含文件的整个目录。

进行了一些研究之后,在0中使用2的内容很多,但是我尝试的任何解决方案都会导致整个服务器被压缩!

我尝试添加arcname和其他可能的解决方案,但是没有运气。

这是我的下面的代码:

zip.write

1 个答案:

答案 0 :(得分:0)

阅读此答案后:Create .zip in Python?

我修改了代码以阅读以下内容,为我解决了这个问题。

    all_order_files = glob.glob("/directory/"+str(order_submission.id)+"-*")

    zip = zipfile.ZipFile("/directory/" + str(order_submission.id) + '-Order-Summary.zip', 'w')

    path = "/directory/"

    for file in all_order_files:
        file_name = file.split('/')[-1]

        absname = os.path.abspath(os.path.join(path, file_name))
        arcname = absname[len(path) + 1:]
        zip.write(absname, arcname)

    zip.close()

请注意提供给write函数的额外参数,该参数会在zip文件解压缩后更改目录结构。