您的位置:首页 > 编程语言 > Python开发

python批量修改图片后缀名

2017-10-14 19:06 369 查看
在处理数据集的过程中我们常常需要改变图片的格式,记录一下改变图片后缀名的几个函数

import os

os.path.splitext() : 用于分离文件名和扩展名

os.path.splitext(image)[0] : 获取image的文件名

os.path.splitext(image)[1]: 获取image的扩展名

fpath, fname=os.path.split(dstfile)  分离文件名和路径

import shutil

shultil.move(srt, dst)  移动文件到对应的目录下

shutil.copyfile(srt, dst)  复制文件到对应的目录下

#coding=utf-8

import shutil  #复制移动文件,修改文件权限等的包

shutil.copy('aa.txt','aa_copy.txt')  #复制文件,复制文件夹用 copytree

shutil.move('aa_copy.txt','abc.txt')  #移动文件或目录或重命名。 rmtree()删除目录下的所有
# -*- coding: utf-8 -*-
#!/usr/bin/python
#test_copyfile.py

import os,shutil

def mymovefile(srcfile,dstfile):
if not os.path.isfile(srcfile):
print "%s not exist!"%(srcfile)
else:
fpath,fname=os.path.split(dstfile)    #分离文件名和路径
if not os.path.exists(fpath):
os.makedirs(fpath)                #创建路径
shutil.move(srcfile,dstfile)          #移动文件
print "move %s -> %s"%( srcfile,dstfile)

def mycopyfile(srcfile,dstfile):
if not os.path.isfile(srcfile):
print "%s not exist!"%(srcfile)
else:
fpath,fname=os.path.split(dstfile)    #分离文件名和路径
if not os.path.exists(fpath):
os.makedirs(fpath)                #创建路径
shutil.copyfile(srcfile,dstfile)      #复制文件
print "copy %s -> %s"%( srcfile,dstfile)

srcfile='/Users/xxx/git/project1/test.sh'
dstfile='/Users/xxx/tmp/tmp/1/test.sh'

mymovefile(srcfile,dstfile)

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

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

import os
os.makedirs(fdir)  创建目录文件夹

打开图片保存图片需要使用PIL库
from PIL import Image
im = Image.open(jpg)
png = splitext(jpg)[0]+"." + png
im.save(png)
获取某路径下的所有文件可以使用glob模块
import glob
files = glob.glob(filename)  ##filename是目录文件名
在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是用来寻找文件的。某种命名规则的文件的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: