在日常的自动化测试中,通常在测试结束需要发送测试报告给相关人员,而测试报告中涉及多个文件,那么就需要使用压缩文件夹的功能,下面是使用zip压缩方式的具体实现方法:

import zipfile
import os

from Conf.conf import FILE_PATH, DIR_NAME
from common.logger import GetLogger


class ZipFile():

    def __init__(self):
        self.logger = GetLogger().get_logger()

    def zip_dir(self, dir_path):
        '''
        压缩文件夹
        :param dir_path: 目标文件夹路径
        '''
        zip_path = FILE_PATH   # 压缩后的文件夹名
        try:
            z = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
            for root, dirnames, filenames in os.walk(dir_path):
                file_path = root.replace(dir_path, '') # 去掉根路径,只对目标文件夹下的文件及文件夹压缩
                # 循环出一个个文件名
                for filename in filenames:
                    z.write(os.path.join(root, filename), os.path.join(file_path, filename))
            self.logger.info('压缩成功')
            z.close()
        except Exception as e:
            self.logger.error('压缩失败:{}'.format(e))


if __name__ == '__main__':
    z = ZipFile()
    z.zip_dir(DIR_NAME + '/reports/test')

亲测可以压缩成功:

怎么打开压缩的Python python 文件压缩_目标文件