python 批量更换图片格式脚本

问题:将某文件下的所有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

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

时间: 2024-10-27 10:02:11

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

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

Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入send2trash库,是把删除的文件放进垃圾箱,而不是永久删除,这个我只是防止删除有用的文件而搞得,有点严谨了是吧,不需要的可以删掉啊. 4.我这个脚本是Python2.7编写的,但是在处理中文编码的时候非常恶心,尽管最后被我解决了,这个解决的方法,我随后会再单独写一篇,但是此刻我是建议大家不要用

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

公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图片的输入路径和输出路径,而且每次都只能处理一个文件夹,很繁琐,于是我想到了万能的Python,然后写了一个脚本来批量处理图片,同一个根目录下的所有文件夹的子文件等的图片全部会处理掉. 代码中还加入了很多的异常捕获机制和提示,希望对大家有帮助. 备注: 1.导入了PIL库,是处理图片用的,很强大: 2

Python 批量修改图片exif属性

一共两个文件 config.ini //放配置文件 exif.py   //主程序文件 config.ini 文件源码 [global] Artist = www.blmm.com ;作者 DateTimeOriginal = now ;时间(now为当前时间,如指定时间则格式为:2017:04:09 14:13:22) Software = Adobe Photoshop CS6 Windows ;程序名称 exif.py 文件源码 #ecoding:utf-8 import pyexiv2

python 批量修改图片大小

一个文件夹下面有好多图片格式是jpg大小是1920*1080,把它们处理成1280*720并按原先图片的名保存在另一路径下这里首先要找到给定路径下所有的图片文件,然后在修改图片文件的大小,这里用到PIL和glob两个库: # -*- coding: utf-8 -*- import os import glob from PIL import Image import os.path '''修改图片文件大小jpgfile:图片文件:savedir:修改后要保存的路径''' def convert

用python批量下载图片

一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么样的爬虫是违法的: 如果爬虫程序采集到公民的姓名.身份证件号码.通信通讯联系方式.住址.账号密码.财产状况.行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违法行为.除此之外,根据相关规定,对于违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,窃取或者以其他方法

python批量检测注入点脚本

# -*- coding:utf-8 -*- def logo(): print (" *** ") print (" * * ") print (" author: * * ") print (" Screw * ") print (" ***** ") print (" * ") print (" * * ") print (" blog: * * &q

python批量下载图片的三种方法

一是用微软提供的扩展库win32com来操作IE: win32com可以获得类似js里面的document对象,但貌似是只读的(文档都没找到). 二是用selenium的webdriver: selenium则提供了Chrome,IE,FireFox等的支持,每种浏览器都有execute_script和find_element_by_xx方法,可以方便的执行js脚本(包括修改元素)和读取html里面的元素.不足是selenium只提供对python2.6和2.7的支持. 三是用python自带的

Python 批量下载图片示例

使用Python find函数和urllib下载图片. #!/usr/bin/env python import time import urllib i = 0 url = ['']*10 name = ['']*10 con = urllib.urlopen('http://www.ithome.com/html/bizhi/164396.htm').read() src = con.find(r'/newsuploadfiles') end = con.find(r'.jpg',src)

用python批量转换图片

需求是这样的,由于现在相机像素都很高,拍出来的照片很大,上传到网上相册太慢,于是要先转下大小,之前都是直接在网上搜图片处理的软件,后来想了一下,既然会编程,这种需求完全可以自己动手搞. python的图片处理爽歪歪,几行代码搞定,这里用的是pillow库. 下面上代码. #coding=utf-8 from PIL import Image#需要pillow库 import glob, os in_dir ='tmp_photo'#源图片目录 out_dir = in_dir+'_out'#转换