python练习册0005

时间:2023-03-10 00:14:42
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