零基础自学Python,自动办公,根据图片大小查找图片

设计师阿文正在调整素材图片库,她把素材图片放在 picture文件夹中,阿文要在这些素材图片中,找出图片尺寸(长*宽)大于60*60的素材图片。

可是素材图片有几百张,想要在这么多图片中找出尺寸不符合的,那可就太费时了(⊙?⊙)

阿文灵机一动,想到了好办法,她可以通过今天学习的ezexif模块,获取图片的长度EXIF ExifImageLength和图片的宽度EXIF ExifImageWidth。

通过判断图片的长度和宽度是否小于60,如果小于60,就在一个文件夹中,例如:素材。如果大于60,就放在另一个文件夹中,例如:修改

文件夹路径:
/Users/yequ/Desktop/picture

思路:

1、 导入os、ezexif、shutil模块。

2、将照片文件夹路径
/Users/yequ/Desktop/picture 赋值给path

3、使用os.path.join()函数拼接path和文件夹名”素材”,赋值给变量resourcePath

4、使用os.path.exists()函数判断当如果目标文件夹不存在,使用os.mkdir()函数创建文件夹。使用os.path.join()函数拼接path和文件夹名”修改”,赋值给变量revisePath

5、使用os.path.exists()函数判断当如果目标文件夹不存在,使用os.mkdir()函数创建文件夹,使用os.listdir()函数获取path路径下所有的文件(夹),并赋值给变量photoList。

6、使用for循环遍历所有文件(夹),使用os.path.join()函数拼接path和文件名,赋值给变量photoPath。

7、使用函数os.path.isdir()判断当photoPath不是文件夹时,获取exif信息,赋值给变量exifInfo,获取照片长度,赋值给变量imageLeng,获取照片宽度,赋值给变量imageWidth。

8、如果整型imageLeng和整型imageWidth都比60小,转移图片到素材文件夹。否则转移图片到修改文件夹。print输出success

提示:

查找图片尺寸

使用ezexif模块,获取图片exif信息,EXIF ExifImageLengthEXIF ExifImageWidth就可以获取图片的长度和宽度

import ezexif

exifInfo = ezexif.process_file(“海贼王.JPG”)

# 获取照片长度

imageLeng = exifInfo[‘EXIF ExifImageLength’]

# 获取照片宽度

imageWidth = exifInfo[‘EXIF ExifImageWidth’]

解析:

Step.1

导入os、ezexif、shutil模块。

# TODO 导入os模块

import os

# TODO 导入ezexif模块

import ezexif

# TODO 导入shutil模块

import shutil

Step.2

将照片文件夹路径
/Users/yequ/Desktop/picture 赋值给path

# TODO 将照片文件夹路径
/Users/yequ/Desktop/picture 赋值给path

path=”/Users/yequ/Desktop/picture”

Step.3

使用os.path.join()函数拼接path和文件夹名”素材”,赋值给变量resourcePath

# TODO 使用os.path.join()函数拼接path和文件夹名”素材”,赋值给变量resourcePath

resourcePath=os.path.join(path,”素材”)

Step.4

使用os.path.exists()函数判断当如果目标文件夹不存在,使用os.mkdir()函数创建文件夹。使用os.path.join()函数拼接path和文件夹名”修改”,赋值给变量revisePath

# TODO 使用os.path.exists()函数判断当如果目标文件夹不存在

if not os.path.exists(resourcePath):

# TODO 使用os.mkdir()函数创建文件夹

os.mkdir(resourcePath)

# TODO 使用os.path.join()函数拼接path和文件夹名”修改”,赋值给变量revisePath

revisePath=os.path.join(path,”修改”)

Step.5

使用os.path.exists()函数判断当如果目标文件夹不存在,使用os.mkdir()函数创建文件夹,使用os.listdir()函数获取path路径下所有的文件(夹),并赋值给变量photoList。

# TODO 使用os.path.exists()函数判断当如果目标文件夹不存在

if not os.path.exists(revisePath):

# TODO 使用os.mkdir()函数创建文件夹

os.mkdir(revisePath)

# TODO 使用os.listdir()函数获取path路径下所有的文件(夹),并赋值给变量photoList

photoList=os.listdir(path)

Step.6

使用for循环遍历所有文件(夹),使用os.path.join()函数拼接path和文件名,赋值给变量photoPath。

# TODO 使用for循环遍历所有文件(夹)

for photo in photoList:

# TODO 使用os.path.join()函数拼接path和文件名,赋值给变量photoPath

photoPath=os.path.join(path,photo)

Step.7

使用函数os.path.isdir()判断当photoPath不是文件夹时,获取exif信息,赋值给变量exifInfo,获取照片长度,赋值给变量imageLeng,获取照片宽度,赋值给变量imageWidth。

# TODO 使用函数os.path.isdir()判断当photoPath不是文件夹时

if not os.path.isdir(photoPath):

# TODO 获取exif信息,赋值给变量exifInfo

exifInfo=ezexif.process_file(photoPath)

# TODO 获取照片长度,赋值给变量imageLeng

imageLeng=exifInfo[“EXIF ExifImageLength”]

# TODO 获取照片宽度,赋值给变量imageWidth

imageWidth=exifInfo[“EXIF ExifImageWidth”]

Step.8

如果整型imageLeng和整型imageWidth都比60小,转移图片到素材文件夹。否则转移图片到修改文件夹。print输出success

# TODO 如果整型imageLeng和整型imageWidth都比60小

if int(imageLeng)<60 and int(imageWidth)<60:

# TODO 转移图片到素材文件夹

shutil.move(photoPath,resourcePath)

# TODO 否则

else:

# TODO 转移图片到修改文件夹

shutil.move(photoPath,revisePath)

# TODO print输出success

print(“success”)

完整代码:

# TODO 导入os模块import os# TODO 导入ezexif模块import ezexif# TODO 导入shutil模块import shutil# TODO 将照片文件夹路径 /Users/yequ/Desktop/picture 赋值给pathpath="/Users/yequ/Desktop/picture"# TODO 使用os.path.join()函数拼接path和文件夹名"素材",赋值给变量resourcePathresourcePath=os.path.join(path,"素材")# TODO 使用os.path.exists()函数判断当如果目标文件夹不存在if not os.path.exists(resourcePath):    # TODO 使用os.mkdir()函数创建文件夹    os.mkdir(resourcePath)# TODO 使用os.path.join()函数拼接path和文件夹名"修改",赋值给变量revisePathrevisePath=os.path.join(path,"修改")# TODO 使用os.path.exists()函数判断当如果目标文件夹不存在if not os.path.exists(revisePath):    # TODO 使用os.mkdir()函数创建文件夹    os.mkdir(revisePath)# TODO 使用os.listdir()函数获取path路径下所有的文件(夹),并赋值给变量photoListphotoList=os.listdir(path)# TODO 使用for循环遍历所有文件(夹)for photo in photoList:    # TODO 使用os.path.join()函数拼接path和文件名,赋值给变量photoPath    photoPath=os.path.join(path,photo)    # TODO 使用函数os.path.isdir()判断当photoPath不是文件夹时    if not os.path.isdir(photoPath):        # TODO 获取exif信息,赋值给变量exifInfo        exifInfo=ezexif.process_file(photoPath)        # TODO 获取照片长度,赋值给变量imageLeng        imageLeng=exifInfo["EXIF ExifImageLength"]        # TODO 获取照片宽度,赋值给变量imageWidth        imageWidth=exifInfo["EXIF ExifImageWidth"]        # TODO 如果整型imageLeng和整型imageWidth都比60小        if int(imageLeng)<60 and int(imageWidth)<60:            # TODO 转移图片到素材文件夹            shutil.move(photoPath,resourcePath)        # TODO 否则        else:            # TODO 转移图片到修改文件夹            shutil.move(photoPath,revisePath)            # TODO print输出successprint("success")

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月18日
下一篇 2022年10月18日

相关推荐