123456789101112131415161718192021222324252627282930313233343536373839 |
- # -*- 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')
|