利用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实现dict版图遍历示例
Feb 19 Python
python实现sublime3的less编译插件示例
Apr 27 Python
Python如何实现守护进程的方法示例
Feb 08 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
python实现控制COM口的示例
Jul 03 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
PyTorch: Softmax多分类实战操作
Jul 07 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
Python数据分析之pandas函数详解
Apr 21 Python
详解python网络进程
Jun 15 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
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
理解JavaScript原型链
2016/10/25 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
Python中的ceil()方法使用教程
2015/05/14 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
安装docker-compose的两种最简方法
2019/07/30 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Python读写锁实现实现代码解析
2020/11/28 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
数据库专业英语
2012/11/30 面试题
迷你西餐厅创业计划书范文
2013/12/31 职场文书
《赶海》教学反思
2014/04/20 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
课程设计感想范文
2015/08/11 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python