【学习】python 对图片文件批量重命名和删除不符合的图片
python 文件批量重命名
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
class ImageRename():
def __init__(self):
self.path = os.path.dirname(os.path.abspath(sys.argv[0]))
def rename(self):
filelist = os.listdir(self.path)
total_num = len(filelist)
i = 0
for item in filelist:
if item.endswith('.jpg'):
src = os.path.join(os.path.abspath(self.path), item)
dst = os.path.join(os.path.abspath(self.path), '0000' + format(str(i), '0>3s') + '.jpg')
os.rename(src, dst)
#print 'converting %s to %s ...' % (src, dst)
i = i + 1
#print 'total %d to rename & converted %d jpgs' % (total_num, i)
if __name__ == '__main__':
newname = ImageRename()
newname.rename()
python判断图片宽度和高度后删除图片的方法
Image对象有open方法却没有close方法,如果打开图片,判断图片高度和宽度,判断完成后希望删除或者给图片改名,是无法操作的,这段代码可以解决这个问题,注意open函数打开图片文件要使用二进制方式,及参数使用'rb',有的文章给出的只有个'r'参数,Image是无法open的
import os from PIL import Image fileName = 'c:/py/jb51.jpg' fp = open(fileName,'rb') im = Image.open(fp) fp.close() x,y = im.size if x <300 or y < 300: os.remove(fileName)
两者结合到一起使用,先判断图片是否符合尺寸要求,符合就重命名,不符合则删除
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from PIL import Image
class Rename_screen():
def __init__(self):
self.path = os.path.dirname(os.path.abspath(sys.argv[0]))
def r_s(self):
filelist = os.listdir(self.path)
total_num = len(filelist)
i = 0
for item in filelist:
if item.endswith('.jpg'):
src = os.path.join(os.path.abspath(self.path), item)
dst = os.path.join(os.path.abspath(self.path), '0000' + format(str(i), '0>3s') + '.jpg')
fp = open(src, 'rb')
im = Image.open(fp)
fp.close()
x, y = im.size
if item.endswith('.jpg') and (x < 10 or y < 10):
os.remove(src)
elif item.endswith('.jpg') and (x >= 10 or y >= 10):
os.rename(src, dst)
i = i + 1
if __name__ == '__main__':
newname = Rename_screen()
newname.r_s()

浙公网安备 33010602011771号