问题:将某文件下的所有jpg的图片更换为png的图片

简单的实现:

# -*- coding:utf-8 -*-
from os.path import splitext
import glob
from PIL import Image def get_all_file(filename):
files = glob.glob(filename)
return files def to_ather_file(files, type):
for jpg in files:
im = Image.open(jpg)
png = splitext(jpg)[0]+"." + type
im.save(png)
print png if __name__ == "__main__":
filename = "./image/*.[Jj][Pp][Gg]"
files = get_all_file(filename)
to_ather_file(files, "png")

  这是一种很简单的是实现方法,就是先用glob获得某路径下的所有文件,该文件下都是jpg图片(题目是给定的,也可以考虑存在其他图片的情况的处理方式,就是获得文件的后缀名,判断是否为jpg),然后依次读入图片,使用splitext获得文件名和后缀名,然后按照要求重组文件名并保存就好了。

这里介绍两个部分:

glob模块:

在python中,glob模块是用来查找匹配的文件的    在查找的条件中,需要用到Unix shell中的匹配规则:

*    :   匹配所所有

?    :   匹配一个字符

*.*  :   匹配如:[hello.txt,cat.xls,xxx234s.doc]

?.*  :   匹配如:[1.txt,h.py]

?.gif:   匹配如:[x.gif,2.gif]

可以参考:fnmatch    如果没有匹配的,glob.glob(path)将返回一个空的list:[]

也就说:glob是用来寻找文件的。某种命名规则的文件的。

import glob

 def get_all():
'''获取目录[c:\\tmp]下面所有的文件'''
return glob.glob('c:\\tmp\\*.*') def get_my_file():
'''获取目录[c:\\tmp]下面文件名为4个字符的文件'''
return glob.glob('c:\\tmp\\????.txt') def get_batch_file():
'''获取目录[c:\\tmp]下面扩展名为\'.txt\'的文件'''
return glob.glob('c:\\tmp\\*.txt') def main():
print('获取目录[c:\\tmp]下面所有的文件:')
tem_files = get_all()
print(tem_files)
print('获取目录[c:\\tmp]下面文件名为4个字符的文件:')
tem_files = get_my_file()
print(tem_files)
print('获取目录[c:\\tmp]下面扩展名为\'.txt\'的文件:')
tem_files = get_batch_file()
print(tem_files) if __name__ == '__main__':
main()

  

python文件操作: 
有关文件夹与文件的查找,删除等功能 在 os 模块中实现。使用时需先导入这个模块,

导入的方法是:

import os

1、将一个路径名分解为目录名和文件名两部分

fpath , fname = os.path.split( "你要分解的路径")

例如:

a, b = os.path.split( "c:\\123\\456\\test.txt" )

print a

print b

显示:

c:\123\456

test.txt

2、 分解文件名的扩展名

fpathandname , fext = os.path.splitext( "你要分解的路径")

例如:

a, b = os.path.splitext( "c:\\123\\456\\test.txt" )

print a

print b

显示:

c:\123\456\test

.txt

文件操作还有很多有用的函数,可以通过查找手册来看。

python 批量更换图片格式脚本的更多相关文章

  1. Python批量修改图片格式和尺寸

    Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...

  2. Python 批量修改图片格式和尺寸

    公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图 ...

  3. python 将png图片格式转换生成gif动画

    先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? https://www.zhihu.com/question/33646570/answer/157806339 这个哥们通过爬气 ...

  4. 使用IMAGEMAGICK的CONVERT工具批量转换图片格式

    使用IMAGEMAGICK的CONVERT工具批量转换图片格式 http://www.qiansw.com/linux-imagemagick-convert-img.html Home > 文 ...

  5. java批量转换图片格式

    废话不多直接上代码,代码其实也不多.... package com.qiao.testImage; import java.awt.image.BufferedImage; import java.i ...

  6. tinypng的python批量压缩图片功能

    tinypng网站提供的图片压缩功能很不错,但是直接在网站上压缩有限制,大量压缩图片时比较麻烦,还好官方提供了很多脚本的自动化压缩接口.下面简单说下python批量压缩步骤. 1.申请api key ...

  7. python批量修改图片名称

    import os class BatchRename(): def rename(self): # windows环境 """ os.rename() 方法用于命名文件 ...

  8. python 批量修改图片大小

    一个文件夹下面有好多图片格式是jpg大小是1920*1080,把它们处理成1280*720并按原先图片的名保存在另一路径下这里首先要找到给定路径下所有的图片文件,然后在修改图片文件的大小,这里用到PI ...

  9. 【最简单】不用ps也可以批量转换图片格式

    不废话直接开始~ 1.新建文件夹,把需要转换的图片放进去,如图: 2.文件夹里建一txt文本,重点来了!txt文本的内容,如果是jpg转为png,则输入“ren *.jpg *.png”,同理png转 ...

随机推荐

  1. Resource temporarily unavailable

    数据库版本:5.5.14 操作系统版本:contos 6.3 服务器256G内存,安装90个实例.通过脚本启动90个mysql数据库实例,会有几个实例无法启动,进程启动后直接被杀死.查看mysql日志 ...

  2. 解决ASP.NET使用IIS架设网站时“服务器应用程序不可用”的方法

    服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的“刷新”按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web ...

  3. spring-mysqlclient开源了

    https://github.com/risedragon/spring-mysqlclient/wiki/spring-mysqlclient-user-guide 开源了一个项目,总结了几年的数据 ...

  4. 快书包CEO徐智明反思:我犯下哪些错误

    新浪科技 刘璨 1月23日,快书包CEO徐智明在微博上公开“叫卖”快书包,在业内引起不小反响.这家创立于2010年要做“网上711”的创业公司,曾以独特的“一小时送达”服务在业内成为关注焦点. “如果 ...

  5. 从零开始学ios开发(二十):Application Settings and User Defaults(下)

    在上一篇的学习中,我们知道了如何为一个App添加它的Settings设置项,在Settings设置项中我们可以添加哪些类型的控件,这些控件都是通过一个plist来进行管理的,我们只需对plist进行修 ...

  6. Android存储机制之Preference

    Preference提供了一种轻量级的数据存取方法,主要是数据比较少的配置信息.它以键值对的方式将数据保存在一个XML配置文件中. 使用Preference方式来存取数据,用到了SharedPrefe ...

  7. Cocos2dx 截屏

    void SaveScreenshot() { CCSize size = CCDirector::sharedDirector()->getWinSize(); CCRenderTexture ...

  8. C# XML - XmlNode and XmlAttribute

    public static string TestXML(string path) { XmlDocument doc = new XmlDocument(); doc.Load(path); Xml ...

  9. SQL Server表分区【转】

    转自:http://www.cnblogs.com/knowledgesea/p/3696912.html SQL Server表分区   什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在 ...

  10. 通过email分享

    MFMailComposeViewController *mailC=[[MFMailComposeViewControlleralloc] init]; if ([MFMailComposeView ...