利用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爬虫之xlml解析库(全面了解)
Aug 08 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
python从入门到精通 windows安装python图文教程
May 18 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 Python
python tkinter控件布局项目实例
Nov 04 Python
关于Python中定制类的比较运算实例
Dec 19 Python
python中数字是否为可变类型
Jul 08 Python
python logging模块的使用
Sep 07 Python
python生成xml时规定dtd实例方法
Sep 21 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
JS实现拼图游戏
2021/01/29 Javascript
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
Python微信操控itchat的方法
2019/05/31 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
python实现串口自动触发工作的示例
2019/07/02 Python
关于numpy数组轴的使用详解
2019/12/05 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
大四学年自我鉴定
2013/11/13 职场文书
简历自我评价模版
2014/01/31 职场文书
网页美工求职信
2014/02/15 职场文书
个人授权委托书
2014/04/03 职场文书
护士找工作求职信
2014/07/02 职场文书
授权收款委托书范本
2014/10/10 职场文书
签证工作证明模板
2015/06/15 职场文书
《静夜思》教学反思
2016/02/17 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书