由更改图片大小引发的一系列问题

需求描述

前段时间,要将最近两个月的工作内容截图并整理成文档提交,这样以来大概有一二百张图片要在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模块的简单使用,再就是研究了下嵌套列表的一些知识。感慨很深,在写代码的时候才知道自己有几斤几两!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值