利用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 urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
Python脚本实现格式化css文件
Apr 08 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
Python队列的定义与使用方法示例
Jun 24 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
python实现tail -f 功能
Jan 17 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 Python
Python代码风格与编程习惯重要吗?
Jun 03 Python
Python加密与解密模块hashlib与hmac
Jun 05 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读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
微信小程序开发探究
2016/12/27 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
python计算最大优先级队列实例
2013/12/18 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
python中自带的三个装饰器的实现
2019/11/08 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Python configparser模块常用方法解析
2020/05/22 Python
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
毕业生自荐书
2014/02/02 职场文书
亲戚结婚的请假条
2014/02/11 职场文书
酒店端午节促销方案
2014/02/18 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书