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
原文地址:https://www.cnblogs.com/bianzhuo/p/9839434.html