我有一种情况要确保在创建zip文件时,在解压缩文件时它不会包含文件的整个目录。
进行了一些研究之后,在0
中使用2
的内容很多,但是我尝试的任何解决方案都会导致整个服务器被压缩!
我尝试添加arcname
和其他可能的解决方案,但是没有运气。
这是我的下面的代码:
zip.write
答案 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文件解压缩后更改目录结构。