Pythonでファイルを再帰的に解凍する方法

再帰的にすべてのファイルを展開するには、zipfileモジュールを使って圧縮ファイルを操作できます。以下、再帰を利用するサンプルコードです。

import os
import zipfile

def unzip_all_files(directory):
    for item in os.listdir(directory):
        item_path = os.path.join(directory, item)
        if os.path.isfile(item_path) and item.endswith('.zip'):
            # 打开压缩文件
            with zipfile.ZipFile(item_path, 'r') as zip_ref:
                # 解压文件到当前目录
                zip_ref.extractall(directory)
            # 删除压缩文件
            os.remove(item_path)
        elif os.path.isdir(item_path):
            # 递归调用解压函数
            unzip_all_files(item_path)

# 指定要解压的目录
directory_to_unzip = 'path/to/directory'
unzip_all_files(directory_to_unzip)

上記のコードでは、まずunzip_all_files関数を定義し、ディレクトリパスをパラメータとして受け付けます。次に、ディレクトリ内のすべての項目を処理し、圧縮ファイル(拡張子が.zip)の場合は現在のディレクトリに解凍し、元の圧縮ファイルを削除します。サブディレクトリの場合は、その中のファイルを解凍するためにunzip_all_files関数を再帰的に呼び出します。最後に、解凍するディレクトリを指定して、unzip_all_files関数を呼び出して解凍を開始します。

bannerAds