1. def zip2file(zip_obj, zip_src: str, zip2file_src: str)-> Tuple[bool, str]:
    2. """解压zip文件到指定目录
    3. Args:
    4. zip_obj (Callable): zip_obj
    5. zip_src (str): zip文件存放绝对路径
    6. zip2file_src (str): zip文件解压绝对路径
    7. Returns:
    8. Tuple[bool, str]: [description]
    9. """
    10. zip_file_path = str(pathlib.Path.joinpath(zip_src, zip_obj.filename))
    11. zip_obj.save(zip_file_path)
    12. try:
    13. # 解压文件
    14. if zipfile.is_zipfile(filename=zip_file_path):
    15. with zipfile.ZipFile(zip_file_path, 'r') as fz:
    16. for file in fz.namelist():
    17. fz.extract(file, zip2file_src)
    18. except zipfile.BadZipFile as err:
    19. logger.error("Exception in extracting zip file")
    20. return False, "Exception in extracting zip file"
    21. else:
    22. # 删除zip文件
    23. os.remove(zip_file_path)
    24. return True, "Successfully unzipped the zip file"
    25. def file2zip(zip_file: str, file: str)->Tuple[bool, str]:
    26. """将文件打包成zip文件
    27. Args:
    28. zip_file (str): zip类型文件
    29. file (List[str]): 将要打包的文件
    30. Returns:
    31. NoReturn: [description]
    32. """
    33. try:
    34. with zipfile.ZipFile(zip_file, mode='w', compression=zipfile.ZIP_DEFLATED) as zip:
    35. parent_path, name = os.path.split(file)
    36. logger.info(f"parent_path##########{parent_path}")
    37. logger.info(f"name##########{name}")
    38. zip.write(file, arcname=name)
    39. except zipfile.BadZipFile as err:
    40. logger.error("Exception in compressed file")
    41. return False, "Exception in compressed file"
    42. else:
    43. # 删除原日志文件
    44. # os.remove(file)
    45. return True, "Successfully compressed the file"