需求描述
前段时间,要将最近两个月的工作内容截图并整理成文档提交,这样以来大概有一二百张图片要在wps里面调整大小。手动拖拽显得极其麻烦,而且手动拖拽也不能确保图片大小完全一致。暂且不论wps有没有这种功能,当时脑海中想的就是用python去处理图片,然后就上网查了查python处理图片所需要的模块
安装Pillow模块
显而易见,这个Pillow模块就是用来处理图片的。打开命令行输入pip install Pillow
安装Pillow模块
主要代码
值得注意的是,代码是在python3.7环境下运行的。png格式的图片测试过可以更改大小,其他格式图片暂时还没试过。
#coding=utf-8
import os
from PIL import Image
import glob
#图片格式
style=[".png",".tga","jpg","bmp"]
#文件打开路径
pathOpen=r"F:\wo\kaokua\kaokua_dd"
#文件保存路径
pathSave=r"F:\wo\kaokua\kaokua_ff"
#图片尺寸
size_m = 512
size_n = 128
Name=[]
pathName=[]
for i in style:
Name.append(glob.glob(pathOpen+"\*"+i))
pathName = sum(Name, [])
for images in pathName:
image= Image.open(images)
image_size = image.resize((size_m, size_n),Image.ANTIALIAS)
images=os.path.join(pathSave,images.split("\\")[-1])
image_size.save(images)
遇到的问题
正常情况下到这儿该结束了,但中途出现了一点小插曲,浪费了点时间。仔细看下面这行代码,一开始以为Name
变量最终是一个列表
Name=[]
pathName=[]
for i in style:
Name.append(glob.glob(pathOpen+"\*"+i))
之后发现Name
变量最终产生的确实是一个列表,不过是嵌套列表,最后用这行代码pathName = sum(Name, [])
将嵌套列表展开了
延伸的问题
1.什么是嵌套列表
顾名思义,嵌套列表就是列表里面还有列表。比如a=[[1, 2], [11.25, 12.56],['aadad','sdf']]
2.生成一个嵌套列表
#coding=utf-8
def createList(max,num):
oldList=[]
newList=[]
while True:
count=0
for temp in range(1,max):
oldList.append(temp)
count+=1
if count==num:
newList.append(oldList)
oldList=[]
count=0
continue
if temp==(max-1):
newList.append(oldList)
break
print newList
createList(35,5)
上述代码可以生成1到35之间包含1不包含35并以5个数字为一组的嵌套列表,如下:
newList=[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30], [31, 32, 33, 34]]
3.如何展开嵌套列表
下面提供三种方法展开嵌套列表,当然也可以用递归。
List=[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],
[11, 12, 13, 14, 15], [16, 17, 18, 19, 20],
[21, 22, 23, 24, 25], [26, 27, 28, 29, 30], [31, 32, 33, 34]]
#方法一
newList1=[]
for j in List:
for i in j:
newList1.append(i)
print newList1
newList2 = [i for j in List for i in j]
print(newList2)
#方法二
newList3=[]
for i in List:
newList3.extend(i)
print newList3
#方法三
newList4 = sum(List, [])
print newList4
总结
这次主要学习了下Pillow模块的简单使用,再就是研究了下嵌套列表的一些知识。感慨很深,在写代码的时候才知道自己有几斤几两!