最近学习到python文件管理部分,写了一个自动识别图片长宽,自动分类到不同的文件夹的小脚本。
注:地址按自己电脑实际修改。
import os,glob,shutil
from PIL import Image
#源图片地址
path = r"E:\BaiduYunDownload\图包\*"
#手机壁纸地址
phone = r"E:\BaiduYunDownload\图包\手机"
#电脑壁纸地址
pc = r"E:\BaiduYunDownload\图包\电脑"
files = glob.glob(path)
for f in files:
if(f.endswith(".png") or f.endswith(".jpeg") or f.endswith(".PNG") or f.endswith(".bmp")):
fp = open(f,'rb')
img = Image.open(fp)
#width为图片的宽度 ,high为图片的高度
width,high = img.size
fp.close()
#高度大于宽度
if(width<high):
if not os.path.exists(phone):
os.makedirs(phone)
aimfile = phone+"\\"+os.path.split(f)[1]
shutil.move(f,aimfile)
print("已经将:{}移动到:{}".format(f,aimfile))
#宽度大于高度,且宽度分辨率大于1100
if(width>high and width>1000):
if not os.path.exists(pc):
os.makedirs(pc)
aimfile = pc+"\\"+os.path.split(f)[1]
shutil.move(f,aimfile)
print("已经将:{}移动到:{}".format(f,aimfile))
如果遇到:
'gbk' codec can't encode character '\u21d2' in position 44: illegal multibyte sequence print
这样的情况是因为print()不能输出某个字符,例如我这个就是“⇒”这个字符,python的print()不能打印出来,所以我们考虑把print()这个语句删了就可以运行了,或者就是把文件名重命名。