利用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 错误和异常小结
Oct 09 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
深入理解python try异常处理机制
Jun 01 Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
Python多线程获取返回值代码实例
Feb 17 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python如何更新包
Jun 11 Python
python基于turtle绘制几何图形
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
一篇不错的PHP基础学习笔记
2007/03/18 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
搭建vue开发环境
2018/07/19 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
超市活动计划书
2014/04/24 职场文书
岗位职责说明书
2014/05/07 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers