1、使用opencv批量压缩图片
import cv2
import os
import time
#需要压缩的图片路径
path='test'
#压缩后图片存放路径
result='test_result'
#dir为列表,包含path下所有的图片名
dir = os.listdir(path)
print('需要压缩的图片数为:'+str(len(dir)))
count = 1
for i in dir:
print('正在压缩第{}张图片'.format(count),end = ',')
start=time.time()
img=cv2.imread(path+'/{}'.format(i))
#用0-100的整数表示,数值越大质量越高,默认为95。 注意,cv2.IMWRITE_JPEG_QUALITY类型为Long,必须转换成int;
#对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE_PNG_COMPRESSION,从0到9,压缩级别越高,图像尺寸越小。
cv2.imwrite(result+'/{}'.format(i),img,[int(cv2.IMWRITE_JPEG_QUALITY), 10])
end=time.time()
print('压缩第{}张图片耗时{}'.format(count,end-start))
count+=1
2、批量修改图片像素
import os
from PIL import Image
import glob
def convertjpg(jpgfile,outdir,width=300,height=225): #300-255位修改后的图片大小
img=Image.open(jpgfile)
new_img=img.resize((width,height),Image.BILINEAR)
new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
for jpgfile in glob.glob("test/*.jpg"): #test为需要修改图片的目录
convertjpg(jpgfile,"test_result") #test_result为修改后图片的保存目录
3、批量修改指定目录下文件的名字
方法一:修改为类似cup1.jpg...的格式
import os
path = 'test' #要修改的图片目录
count = 1
for i in os.listdir(ipath):
#print(i)
old_name = os.path.join(path, i)
new_name = os.path.join(path, 'cup{}.jpg'.format(count)) #修改后的新名字
count += 1
if count >100: break
os.rename(old_name,new_name)
方法2:修改为类似name_0001.jpg...的格式
import os
def formatting(count):
strcount=str(count)
if len(strcount)==1:
#print('000'+strcount)
return '000'+strcount
elif len(strcount)==2:
# print('00' + strcount)
return '00'+strcount
elif len(strcount)==3:
# print('0' + strcount)
return '0'+strcount
elif len(strcount)==4:
# print(strcount)
return strcount
def rename():
count=0
path='test'
filelist=os.listdir(path)
for files in filelist:
Olddir=os.path.join(path,files)#原路径
filename=os.path.splitext(files)[0]#文件名
filetype=os.path.splitext(files)[1]#文件扩展名
Newdir=os.path.join(path,'name_'+formatting(count)+filetype)#新的文件路径
os.rename(Olddir,Newdir)
count+=1
print('success')
rename()
4、删除指定目录下所有文件
import os
def del_file(path):
ls = os.listdir(path)
for i in ls:
c_path = os.path.join(path, i)
if os.path.isdir(c_path):
del_file(c_path)
else:
os.remove(c_path)
path = 'test' #删除test目录下所有图片
del_file(path)
5、删除指定目录下指定后缀的文件
import os
import glob
path ='test/*.jpg' #要删除的指定目录
for infile in glob.glob(path):
os.remove(infile)