利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)


Posted in Python onJuly 30, 2017

前言

本文主要给大家介绍的关于Python批量压缩png的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

1.需求

为什么会有这个需求?是因为游戏的资源大多是png图片,需要压缩,但是有些图片和文件夹里的图片,美术不想压缩,比如一些带透明度的光圈或者游戏的主要元素。所以要过滤下。发现python这个语言比较适合用在这个场景。所以写了点python.

2.源码

import os,sys
import os.path
rootdir=sys.path[0]
 
#需要过滤的文件
notActionFile = ["choose_bg1.png"]
#需要过滤的文件夹
notActionPath = ["test"]
 
#需要删除的文件
needDeleteFile = ["s2.png"]
 
def file_extension(path): 
 return os.path.splitext(path)[1] 
 
for parent,dirnames,filenames in os.walk(rootdir):
 for filename in filenames:
  fullPath = os.path.join(parent,filename)
  #删除文件
  for deleteFile in needDeleteFile:
   if filename == deleteFile:  
    os.remove(fullPath)    
  isFilter = False
  #过滤文件压缩
  for noActionName in notActionFile: 
   if noActionName == filename:
    isFilter = True
  #过滤文件夹压缩    
  for onePath in notActionPath:
   lastPath = fullPath.split('\\')[-2]
   if lastPath == onePath:
    isFilter = True      
  if file_extension(fullPath) == ".png" and isFilter == False:
   #print "action"  
   os.system("pngquant -f --ext .png --quality 50-80 \"" + fullPath + "\"")
   print fullPath

用的是pngquant来压缩。

完整项目下载地址:http://xiazai.3water.com/201707/yuanma/compressImage(3water.com).rar

使用方法,就是复制这2个文件到需要压缩的文件夹下面,然后执行python main.py

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Python 相关文章推荐
python将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
详解python3百度指数抓取实例
Dec 12 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python使用html2text库实现从HTML转markdown的方法详解
Feb 21 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
Python实现疫情地图可视化
Feb 05 Python
python编程的核心知识点总结
Feb 08 Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 #Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 #Python
Python 装饰器使用详解
Jul 29 #Python
python实现数据图表
Jul 29 #Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 #Python
使用Kivy将python程序打包为apk文件
Jul 29 #Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 #Python
You might like
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
jQuery事件用法详解
2016/10/06 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
Python随机数random模块使用指南
2016/09/09 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
django之自定义软删除Model的方法
2019/08/14 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
小学教师自我鉴定
2013/11/07 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
《桥》教学反思
2014/04/09 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
讲座通知范文
2015/04/23 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python
用Java实现简单计算器功能
2021/07/21 Java/Android
python 进阶学习之python装饰器小结
2021/09/04 Python
DIY胆机必读:各国电子管评价
2022/04/06 无线电