利用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的Django框架中的ORM建立查询API
Apr 20 Python
在Python中使用模块的教程
Apr 27 Python
Python中random模块生成随机数详解
Mar 10 Python
浅析Python中的多条件排序实现
Jun 07 Python
基于数据归一化以及Python实现方式
Jul 11 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
python怎么判断素数
Jul 01 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
用python 绘制茎叶图和复合饼图
Feb 26 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最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python基础教程之lambda表达式使用方法
2014/02/12 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Python中装饰器高级用法详解
2017/12/25 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
基于python图像处理API的使用示例
2020/04/03 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
国庆节新闻稿
2015/07/17 职场文书
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫