pdf中图片爬取并与excel中姓名对应,压缩保存

爬取pdf中图片,并按照身份证号与excel中姓名匹配,并压缩存放。

# coding=gbk
import os
import os
import zipfile
import os
from PIL import Image
import numpy as np

path = r'E:\excel' #存放姓名的excel所在文件夹位置
count = 1
for file in os.listdir(path):
    new_file = file.replace(".xlsx", ".zip")
    os.rename(os.path.join(path, file), os.path.join(path, new_file))
    count += 1
print('总共有' + str(count) + '个文件夹')
number = 0
craterDir = "E:excel/"  # 存放zip文件的文件夹路径
saveDir = "E:/pic/"#最后图片存放路径
list_dir = os.listdir(craterDir)
for i in range(len(list_dir)):
    if 'zip' not in list_dir[i]:
        list_dir[i] = ''
while '' in list_dir:
    list_dir.remove('')
for zip_name in list_dir:
    print(zip_name)
    azip = zipfile.ZipFile(craterDir + zip_name)
    namelist = (azip.namelist())

    for idx in range(0, len(namelist)):
        if namelist[idx][:9] == 'xl/media/':# 图片是在这个路径下
            name_file = zip_name.strip().split('.')[0]
            save_path = saveDir+name_file+'/'
            if not os.path.exists(save_path):
                os.makedirs(save_path)
            img_name = save_path + str(number) + '.jpg'
            f = azip.open(namelist[idx])
            img = Image.open(f)
            img = img.convert("RGB")
            img.save(img_name, "JPEG")
            number += 1

#图片压缩批处理
import os
def compressImage(srcPath,dstPath):
    for filename in os.listdir(srcPath):
        #如果不存在目的目录则创建一个,保持层级结构
        if not os.path.exists(dstPath):
                os.makedirs(dstPath)

        #拼接完整的文件或文件夹路径
        srcFile=os.path.join(srcPath,filename)
        dstFile=os.path.join(dstPath,filename)
        print(srcFile)
        print (dstFile)

        #如果是文件就处理
        if os.path.isfile(srcFile):
            #打开原图片缩小后保存,可以用if srcFile.endswith(".jpg")或者split,splitext等函数等针对特定文件压缩
            sImg=Image.open(srcFile)
            w,h=sImg.size
            print( w,h)
            dImg=sImg.resize((w//6,h//6),Image.ANTIALIAS)  #设置压缩尺寸和选项,注意尺寸要用括号
            dImg.save(dstFile) #也可以用srcFile原路径保存,或者更改后缀保存,save这个函数后面可以加压缩编码选项JPEG之类的
            print( dstFile+" compressed succeeded")

        #如果是文件夹就递归
        if os.path.isdir(srcFile):
            compressImage(srcFile,dstFile)


compressImage(srcPath,dstPath) #分别为写入图片位置和存储图片位置

程序员交流可加群783273092

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐老师_xiho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值