一,说明

环境:python2
用到的模块 os zipfile shutil
程序功能:从zip中删除指定后缀的文件,然后再自动压缩
函数说明:
DelFileInZip(path,suffix)

path: zip文件的全路径
suffix: 指定的文件后缀

二,源码

import shutil
import zipfile
import os
from shutil import *

def UnZipFile(zip_src, dst_dir):#解压函数,将zip_src解压到dst_dir
    r = zipfile.is_zipfile(zip_src)
    if r:     
        fz = zipfile.ZipFile(zip_src, 'r')
        for file in fz.namelist():
            fz.extract(file, dst_dir)       
    else:
        print('This is not zip......')

def DelFileInZip(path,suffix):
    pathName=path[:path.rfind('.')]
    pathName=pathName.strip()
    if not os.path.exists(pathName):
        os.makedirs(pathName,0o777)
    else:
        print pathName+' Already exist......'
    print("UnZip:"+path)
    UnZipFile(path,pathName)#解压文件到pathName,python3可使用shutil.unpack_archive(path, pathName, 'zip')
    for root,dirs,files in os.walk(pathName):#遍历pathName文件夹
       for f in files:
           fileName=os.path.join(root,f)
           if(fileName.endswith(suffix)):#找到后缀为suffix的文件
               if os.path.isfile(fileName):
                   os.remove(fileName)#删除目标文件
                   print('del:'+fileName)
               else:
                   print fileName+" not file......"
    print('Zip:'+path)
    shutil.make_archive(pathName,'zip',pathName)#压缩
    shutil.rmtree(pathName)#删除临时文件
    print('=======Finish!======')
    return ''

DelFileInZip('D:\\aaa.zip','log')

三,执行结果

python去后缀提取文件名 python去掉文件后缀名_删除