如何用Python将多文件夹压缩为单个Zip且不含父目录
解决shutil.make_archive压缩后解压带外层目录的问题
你需要调整shutil.make_archive的参数,让压缩包直接包含Parent folder里的子文件夹,而非将Parent folder本身作为根目录。
具体操作如下:
- 将
root_dir设为Parent folder的上级目录 - 将
base_dir设为Parent folder的文件夹名称
示例代码:
import shutil import os # 替换为你的Parent folder实际路径 parent_folder = "/your/path/to/Parent folder" zip_name = "13_03_2024" # 获取上级目录和Parent folder的名称 root_dir = os.path.dirname(parent_folder) base_dir = os.path.basename(parent_folder) # 执行压缩 shutil.make_archive(zip_name, 'zip', root_dir=root_dir, base_dir=base_dir)
这样生成的13_03_2024.zip解压后,会直接得到Folder1和Folder2,不会出现外层的Parent folder目录。
如果Parent folder用的是相对路径(比如./Parent folder),该逻辑同样适用——os.path.dirname会返回当前目录,base_dir则为"Parent folder"。
内容的提问来源于stack exchange,提问作者Abhra Sarkar
相关产品推荐
相关产品推荐

