【问题标题】:ZIP file without original directory structure in pythonpython中没有原始目录结构的ZIP文件
【发布时间】:2019-03-25 01:13:10
【问题描述】:

我遇到的情况是,当我创建一个 zip 文件时,它在解压缩时没有文件的整个目录。

做了一些研究,有很多关于在zip.write 中使用arcname 的内容,但是我尝试的任何解决方案都会导致整个服务器被压缩!

我尝试添加arcname = os.path.basename(file) 和其他可能的解决方案,但没有成功。

下面是我的代码:

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

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

for file in all_order_files:
    zip.write(file)

zip.close()

【问题讨论】:

    标签: django python-3.x zipfile


    【解决方案1】:

    看完这个答案: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 文件时更改目录结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2012-03-31
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多