问题:将某文件下的所有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. 解决This system is not registered with RHN

    Redhat之所以会出现这个错误是因为没有注册RHN,我们只需要更新一下yum的源就可以了.使用命令 cd /etc/yum.repos.d/   进入yum的配置目录. 在终端中输入 wget ht ...

  2. 2016 系统设计第一期 (档案一)MVC 控制器接收表单数据

    1.FormCollection collection   user.UserId =Convert.ToInt32(collection["UserId"]); /// < ...

  3. IME日语输入法的快捷键

    <1>小小技巧 alt+shift可以在中,英,日之间切换 ALT+~可以在假名和英文之间切换 ctrl+CAPSLOCK 和 alt+CAPSLOCK可以在平假名和片假名之间切换 敲完字 ...

  4. 保持程序在后台长时间运行-b

    iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后台受到以下限制:1.用户按Home之后, ...

  5. Backbone.Events—纯净MVC框架的双向绑定基石

    Backbone.Events-纯净MVC框架的双向绑定基石 为什么Backbone是纯净MVC? 在这个大前端时代,各路MV*框架如雨后春笋搬涌现出来,在infoQ上有一篇 12种JavaScrip ...

  6. SQL Server数据库文件存储目录转移

    USE master GO DECLARE @DBName sysname, ) DECLARE @DB table( name sysname, physical_name sysname) BEG ...

  7. python pip和easy_install使用方式(转载)

    easy_install 跟 pip 都是Python 的套件管理程式,有了它们,在使用 Python 开发程式的时候会带来不少方便. easy_install 和pip 有什麼不一样?据 pip 官 ...

  8. 使用SpringMVC+mybatis+事务控制+JSON 配置最简单WEB

    最近在总结一些项目的基础知识,根据公司最近的一些意向和技术路线,初步整理了一个简单的配置例子     1.使用springmvc代替strutsMVC     2.使用请求json数据串的方式代替传统 ...

  9. 【HDOJ】【4089】Activation

    概率DP kuangbin总结中的第5题 题解copy: HDU 4098 题意:有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有一下情况: 1.激活失败,留在队列 ...

  10. MongoDB { code: 18, ok: 0.0, errmsg: "auth fails" } 原因

    MongoDB出现 { code: 18, ok: 0.0, errmsg: "auth fails" }  错误的原因: 1.账号密码错误 2.账号不属于该数据库