Python实现从ZIP压缩包中删除指定后缀文件

Chloe
Chloe
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍如何使用Python的zipfile和shutil模块,实现从ZIP压缩包中自动删除指定后缀文件的功能。通过解压、遍历删除目标文件、重新压缩及清理临时目录的步骤,完成对ZIP文件的修改。适用于Python 2环境,代码包含完整的解压与压缩逻辑。

功能说明与模块依赖

一、功能说明

运行环境为Python 2。脚本主要依赖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从ZIP文件中删除指定后缀文件的实现方法,希望能为读者提供帮助。如有任何疑问,欢迎留言交流,小编会及时回复。感谢大家对本站的支持!若觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表