利用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修改Excel数据的实例代码
Nov 01 Python
Python程序设计入门(5)类的使用简介
Jun 16 Python
编写Python小程序来统计测试脚本的关键字
Mar 12 Python
python 调用HBase的简单实例
Dec 18 Python
python中 logging的使用详解
Oct 25 Python
想学python 这5本书籍你必看!
Dec 11 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
python连接mongodb集群方法详解
Feb 13 Python
python通过opencv调用摄像头操作实例分析
Jun 07 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
Python的三个重要函数详解
Jan 18 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
PHP中的extract的作用分析
2008/04/09 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
dedecms中使用php语句指南
2014/11/13 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
六个窍门助你提高Python运行效率
2015/06/09 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
药学专业大学生自荐信
2013/09/28 职场文书
2014的自我评价
2014/01/13 职场文书
建筑工地标语
2014/06/18 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技