Python使用shutil.make_archive创建ZIP包重复嵌套同名目录问题
shutil.make_archive压缩目录嵌套问题解决方案
错误原因
你当前的代码将shutil.make_archive的root_dir参数指定为SAE目录,同时将base_dir指定为R360目录,打包时会把整个R360文件夹作为压缩包的第一层目录,因此出现了多余的嵌套结构。
修正方案
直接将root_dir参数设置为R360文件夹本身即可,此时压缩包根目录会直接映射R360文件夹下的内容,不会额外嵌套目录。修正后的代码如下:
import shutil # Windows路径使用原始字符串避免转义字符问题 folder = r'C:\Users\PycharmProjects\Project\media\SAE\R360' # 输出压缩包路径,无需加.zip后缀,方法会自动补全 output_path = r'C:\Users\PycharmProjects\Project\media\SAE\R360' shutil.make_archive(output_path, 'zip', root_dir=folder)
效果验证
运行上述代码生成的R360.zip打开后,将直接展示原R360文件夹下的所有文件和子目录,符合预期结构。
内容的提问来源于stack exchange,提问作者Felipe Dourado
相关产品推荐
相关产品推荐

