利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)

 更新时间:2017年07月30日 10:27:05   投稿:daisy  
这篇文章主要给大家介绍了关于利用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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持

相关文章

  • 使用C语言扩展Python程序的简单入门指引

    使用C语言扩展Python程序的简单入门指引

    这篇文章主要介绍了使用C语言扩展Python程序的简单入门指引,来自于IBM官网网站技术文档,需要的朋友可以参考下
    2015-04-04
  • pycharm代码删除恢复的方法

    pycharm代码删除恢复的方法

    pycharm是一个很强大的编辑工具,很多朋友在使用过程中容易产生误操作,那么一不小心删除了,怎么恢复呢,今天就给大家介绍pycharm代码删除恢复教程,需要的朋友参考下吧
    2021-06-06
  • PyCharm使用技巧之设置背景图片方式

    PyCharm使用技巧之设置背景图片方式

    这篇文章主要介绍了PyCharm使用技巧之设置背景图片方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Python学习之shell脚本的使用详解

    Python学习之shell脚本的使用详解

    这篇文章主要为大家分析一个python库–sh(系统调用),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下
    2023-04-04
  • pytorch中的model=model.to(device)使用说明

    pytorch中的model=model.to(device)使用说明

    这篇文章主要介绍了pytorch中的model=model.to(device)使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 浅谈tf.train.Saver()与tf.train.import_meta_graph的要点

    浅谈tf.train.Saver()与tf.train.import_meta_graph的要点

    这篇文章主要介绍了浅谈tf.train.Saver() 与tf.train.import_meta_graph的要点,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程

    详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程

    这篇文章主要介绍了详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python实现读取TXT文件数据并存进内置数据库SQLite3的方法

    Python实现读取TXT文件数据并存进内置数据库SQLite3的方法

    这篇文章主要介绍了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法,涉及Python针对txt文件的读取及sqlite3数据库的创建、插入、查询等相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • python实现AdaBoost算法的示例

    python实现AdaBoost算法的示例

    这篇文章主要介绍了python实现AdaBoost算法的示例,帮助大家更好的理解和了解机器学习算法,感兴趣的朋友可以了解下
    2020-10-10
  • pandas去除重复列的实现方法

    pandas去除重复列的实现方法

    这篇文章主要介绍了pandas去除重复列的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01

最新评论