# -*- coding: utf-8 -*- # @Time : 2024/5/17 # @Author : 魏志亮 import os from utils.log.trans_log import trans_print, logger import zipfile def unzip(zip_filepath, dest_path): # 解压zip文件 is_success = True trans_print('开始读取文件:', zip_filepath) try: with zipfile.ZipFile(zip_filepath, 'r') as zip_ref: zip_ref.extractall(dest_path) except zipfile.BadZipFile as e: logger.exception(e) is_success = False message = str(e) trans_print('不是zip文件:', zip_filepath) return is_success, e # 遍历解压后的文件 if is_success: for root, dirs, files in os.walk(dest_path): for file in files: file_path = os.path.join(root, file) # 检查文件是否是zip文件 if file_path.endswith('.zip'): # 如果是,递归解压 unzip(file_path, dest_path + os.sep + str(file).split(".")[0]) # 删除已解压的zip文件(可选) os.remove(file_path) return is_success, '' if __name__ == '__main__': unzip(r'C:\Users\Administrator\Desktop\test.zip', r'C:\Users\Administrator\Desktop\test')