Skip to main content
 首页 » 编程设计

python之像文件资源管理器一样使用 Python Shutil 压缩文件

2025年05月04日26zfyouxi

背景

我正在尝试像这样使用 python shutil 压缩目录:

shutil.make_archive("~/Desktop/zipfile", 'zip', "~/Documents/foldertozip") 

但结果只压缩里面“foldertozip”的文件。例如,

foldertozip 
    -- file1 
    -- file2 
zipfile.zip 
    -- file1 
    -- file2 

另一方面,如果我从 windows 文件资源管理器或 mac finder 中压缩它,我会得到以下内容:

foldertozip 
    -- file1 
    -- file2 
zipfile.zip 
    -- foldertozip 
        -- file1 
        -- file2 

问题

我如何使用 shutil 执行我可以从文件资源管理器执行的相同操作并包含基本目录?我知道我可以将“foldertozip”复制到一个具有相同名称的文件夹,然后压缩该文件夹,但如果可能的话,我更喜欢更简洁的解决方案。

请您参考如下方法:

如果您同时传递 root_dir 和 base_dir,

make_archive 将执行您想要的操作。参见 the docs .

import shutil 
 
shutil.make_archive('~/Desktop/zipfile', 'zip', '~/Documents/', 'foldertozip')