python练习册0005
第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
本题用了几个os模块的命令,
import os from PIL import Image pathDir = r'D:\素材' os.chdir(pathDir) #修改当前工作目录 def modify_imgsize(): for filename in get_imglist(): img = Image.open(filename) if max(img.size) > 1136: value = max(img.size) / 1136.0 newsize_min = min(img.size) / value newimg = img.resize((1136, int(newsize_min)), Image.ANTIALIAS) # 修改大小 newimg.save('new_' + filename) else: print("This picture is availabe:" + filename) def get_imglist(): # 获取照片名称list img_list = [] list_dir = os.listdir(pathDir)#获取当前工作目录下的所有文件名。 for x in list_dir: if '.jpg'or '' in x: img_list.append(x) else: print("This is not a picture: " + x) return img_list modify_imgsize()
对get_imglist方法重写了下,用endwith代替 。。。。。in 。。。 更为准确
def get_imglist(): # 获取照片名称list img_list = [] list_dir = os.listdir(pathDir) for x in list_dir: if x.endswith(".jpg"): img_list.append(x) else: print("This is not a picture: " + x) return img_list