python中如何压缩和解压缩文件?

在实际的业务开发中会经常遇到对文件进行相关的操作,比如新建文件夹或文件,移动、删除文件夹或文件,文件的压缩与解压缩等等!!下面就其中的压缩与解压缩进行代码演示!

文件解压缩

import os
import glob
import zipfile
 
 
def unzip_file(dir_path):
    # 解压缩后文件的存放路径
    unzip_file_path = r"C:\Users\Desktop\新建文件夹"
    # 找到压缩文件夹
    dir_list = glob.glob(dir_path)
    if dir_list:
        # 循环zip文件夹
        for dir_zip in dir_list:
            # 以读的方式打开
            with zipfile.ZipFile(dir_zip, 'r') as f:
                for file in f.namelist():
                    f.extract(file, path=unzip_file_path)
            os.remove(dir_zip)
 
 
unzip_file(r"C:\Users\Desktop\新建文件夹\*.zip")
 
# 这儿的 dir_path 只是其中的一种路径处理方式,可以根据自己的需求行进实际操作

文件压缩

只压缩目标目录下的文件夹(空文件夹不压缩)及文件

import os
import zipfile
 
 
def zip_dir(dir_path, zip_path):
    '''
     
    :param dir_path: 目标文件夹路径
    :param zip_path: 压缩后的文件夹路径
    :return: 
    '''
    zip = 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:
            zip.write(os.path.join(root, filename), os.path.join(file_path, filename))
    zip.close()
 
 
zip_dir(r"C:\Users\Desktop\新建文件夹", r"C:\Users\Desktop\压缩" + '.zip')

参考:https://www.cnblogs.com/rongge95500/p/11271764.html#_label0