利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
作者:daisy 发布时间:2021-07-16 11:37:24
标签:python,批量压缩,png图片
前言
本文主要给大家介绍的关于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.jb51.net/201707/yuanma/compressImage(jb51.net).rar
使用方法,就是复制这2个文件到需要压缩的文件夹下面,然后执行python main.py
来源:http://www.waitingfy.com/archives/1813
0
投稿
猜你喜欢
- 1.Vuex是什么?学院派:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式;集中存储和管理应用的所有组件状态。理解:以上这4
- 方法一、使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shel
- 本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:#!/usr/bin/python3.5# -*- cod
- python中字典和列表的使用,在数据处理中应该是最常用的,这两个熟练后基本可以应付大部分场景了。不过网上的基础教程只告诉你列表、字典是什么
- 这就需要在 MySQL 中对用户权限进行修改,授予需要的权限。本文将演示这种情况,并给出详细的解决步骤。本文示例的配置如下:Discuz!数
- 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字
- PDOStatement::errorInfoPDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息
- 在Intel的早期,Andy Grove遇到一个雇员 - 他建议公司在芯片的基础上开发个人计算机。AndyGrove疑问道“个人计算机能做什
- 一、动机(Motivate)“模板方法”,就是有一个方法包含了一个模板,这个模板是一个算法。在我们的
- 1、File > Setting > Project:xxx > Project Interpreter 选择或添加环境2
- 引言如果熟悉使用JDBC来连接数据库的同学一定很清楚连接数据库的代码中一定会有依据Class.forName("com.mysql
- 本文接上一篇博客python实现的八大排序算法part1,将继续使用python实现八大排序算法中的剩余四个:快速排序、堆排序、归并排序、基
- mktime()方法是localtime()反函数。它的参数是struct_time或全9元组,它返回一个浮点数,为了兼容时ti
- 1. 创建一个新的环境打开Anaconda Navigator,找不到的win10左下角输入一下就能找到了,如下图。这里通过列表下面的cre
- #!/usr/bin/py2# -*- coding: utf-8 -*-#encoding=utf-8'''
- 此脚本从给定的网页中检索所有链接,并将其保存为txt文件。(文末有完整源码)这是一个简单的网络爬虫示例,使用了 requests 库来发送
- 如果你搞过ASP的开发,你就会为ASP中没有好的完整的调试环境而头疼不己。我收集了网上相关所有信息提示,想给它做成单机的ASP开发错误提示软
- 本文实例讲述了ThinkPHP5.0框架控制器继承基类和自定义类。分享给大家供大家参考,具体如下:继承系统控制器基类:<?phpnam
- 本文实例为大家分享了python实现双链表的具体代码,供大家参考,具体内容如下实现双链表需要注意的地方1、如何插入元素,考虑特殊情况:头节点
- 本文实例讲述了Python实现批量修改文件名的方法。分享给大家供大家参考。具体如下:下载了评书《贺龙传奇》,文件名中却都含有xxx有声下载,