每天一个小程序—0005题(批量处理图片大小)
第 0005 题: 你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
这个需要用到os模块,os模块的功能就是可以遍历目录和文件。
介绍一下我下面代码中用到的两个方法:
① os.walk()
这个方法会返回一个3元元组,(文件夹所在目录,文件夹下的所有文件夹,文件夹下的所有文件)
②os.path.splitext()
这个方法会拆分文件名和后缀名,返回一个2元元组,(文件名, 后缀名)
简单起见,我只是把所有图片的大小都改成了100*100。
1 #!/usr/bin/env python 2 3 import os 4 from PIL import Image 5 6 path = 'D:/python/project/爬虫结果/' 7 savepath = 'D:/python/project/处理结果/' 8 9 def change_pic_size(): 10 for pic in os.walk(path): 11 pic_list = (pic[2]) 12 for pic in pic_list: 13 postfix = os.path.splitext(pic)[1] 14 if postfix == '.jpeg' or postfix == '.jpg' or postfix == 'png': 15 im = Image.open(path + pic) 16 new_im = im.resize((100, 100)) 17 new_im.save(savepath + 'changed_'+ pic) 18 19 if __name__ == '__main__': 20 change_pic_size()