首页 > 解决方案 > 如何使用 Python 仅压缩目录中特定类型的文件?

问题描述

    files = [os.listdir]
    files_to_zip = []
    for file in files:
        if str(file).__contains__("png"):
            files_to_zip.append(file)
    shutil.make_archive("test", 'zip', files_to_zip)

我的代码如上。我知道它不应该起作用,但我真的很想了解背后的逻辑。我想为当前目录中的所有 *.png 文件制作一个 zip 存档,然后将它们全部删除。现在我可以制作一个包含目录中所有文件的 zip 文件,但我只想要 png 文件。提前致谢。

标签: pythonpython-3.x

解决方案


我认为 pathlib 模块更容易使用。

from pathlib import Path

directory = <YOUR DIRECTORY>
shutil.make_archive("test", 'zip', Path(directory).glob('*.png'))

推荐阅读