利用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中的闭包
Aug 11 Python
python 自动去除空行的实例
Jul 24 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
python使用pygame模块实现坦克大战游戏
Mar 25 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
python利用tkinter实现屏保
Jul 30 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
Python简易计算器制作方法代码详解
Oct 31 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
Python OpenCV快速入门教程
Apr 17 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
第十五节--Zend引擎的发展
2006/11/16 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
如何在PHP中使用数组
2020/06/09 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
Vue组件化开发思考
2018/02/02 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
vue使用openlayers实现移动点动画
2020/09/24 Javascript
简单谈谈python基本数据类型
2018/09/26 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
基于Python中的yield表达式介绍
2019/11/19 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
公司办公室岗位职责
2014/03/19 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
企业年检委托书范本
2014/10/14 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
全陪导游词
2015/02/04 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang