【Python】複数のフォルダを全てZIP形式に圧縮・解凍する方法


はじめに

カレントディレクトリにあるフォルダを全てをZIP形式に圧縮または全てのZIPフォルダを解凍するコードを共有して残したいと思ったので記事にしました。

実装

Python 3.9.1

ZIP形式にフォルダを圧縮

以下のコードを実行することでカレントディレクトリにあるフォルダを全てZIP形式に圧縮することができます。

compress_ZIP_folder.py
from shutil import make_archive
import os

path = './'

files = os.listdir(path)
folders_list = [f for f in files if os.path.isdir(os.path.join(path, f))]

# フォルダ内のZIPフォルダを全て圧縮する
for folder in  folders_list:
    make_archive(folder, 'zip', root_dir=folder)

ZIPフォルダを解凍

以下のコードを実行することでカレントディレクトリにあるZIPフォルダを全て解凍することができます。

unzip_the_ZIP_folder.py
from shutil import unpack_archive
import glob

path = './*.zip'

zip_folders_list = glob.glob(path)

# フォルダ内のZIPフォルダを全て解凍する
for folder in zip_folders_list:
    unpack_archive(folder, format='zip')

終わりに

複数のフォルダを圧縮・解凍する機会はなかなかないと思いますが、作業効率化にお役に立てれば嬉しいです。