利用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 web程序
Sep 11 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
python3.5基于TCP实现文件传输
Mar 20 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python绘制多个曲线的折线图
Mar 23 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
Jan 09 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
python判断链表是否有环的实例代码
Jan 31 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
Python制作动态字符画的源码
Aug 04 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实现的生成静态HTML速度快类库
2007/03/31 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
php和nginx交互实例讲解
2019/09/24 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
jquery 常用操作方法
2010/01/28 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python和Go语言的区别总结
2019/02/20 Python
python打印异常信息的两种实现方式
2019/12/24 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
PHP面试题集
2016/12/18 面试题
观看《永远的雷锋》心得体会
2014/03/12 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
教师个人教学反思
2016/02/23 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
一文搞懂php的垃圾回收机制
2021/06/18 PHP