自动拉取所有图片,并自动匹配element表的方法

该Python脚本使用tkinter交互式选择文件夹和文件,通过openpyxl处理Excel表格。它从用户指定的文件夹中提取特定类型的图片,然后将这些图片根据用户提供的Excel表格中的列信息导入到对应的单元格中,用于更新Excel文档。
摘要由CSDN通过智能技术生成

直接上源码~

import os
import shutil       #需要install安装这个shutil模块
import time
import tkinter as tk
from tkinter import filedialog
import openpyxl
from openpyxl.drawing.image import Image

root = tk.Tk()
root.withdraw()

print('开始运行~')
time.sleep(1)
print('''运行步骤:
1.需要新建一个空文件夹,用来存储图片
2.根据提示,选择项目文件夹的所在地址
3.根据提示,选择element表格的所在地址
4.根据提示,输入想要提取的文件类型(jpg、png、raw等)
5.根据提示,选择新建的空文件夹的所在地址
6.根据提示,输入element表格中,图片名称所在列(输入字母:A/B/C/D)
7.根据提示,输入element表格中,导入的图片应该放置的列(输入字母:A/B/C/D)''')
time.sleep(1)
print('''第1步:
请新建一个空文件夹,用来存储图片''')
time.sleep(3)
print('''第2步:
请选择项目文件夹所在的地址''')
time.sleep(2)
data_path = filedialog.askdirectory()           #2.读取的文件所在路径
time.sleep(1)
print('''第3步:
请选择element表格的所在地址''')
time.sleep(1)
element = filedialog.askopenfilename()  #3.element表格的所在地址
time.sleep(1)
a = input('''第4步:
请输入想要提取的文件类型(目前只支持png),注意要小写~''')      #4.读取的文件类型
time.sleep(2)
print('''第5步:
请选择新建的空文件夹的所在地址''')
time.sleep(2)
new_path = filedialog.askdirectory()            #5.新建的空文件夹的所在地址
time.sleep(1)
image_name_column =input('''第6步:
请输入element表格中,图片名称所在列(输入字母:A/B/C/D):''')           #6.图片名称所在列(输入字母:A/B/C/D)
image_column =input('''第7步:
请输入element表格中,导入的图片应该放置的列(输入字母:A/B/C/D):''')       #7.导入的图片应该放置的列(输入字母:A/B/C/D)



def one():
    for root,dirs,files in os.walk(data_path):
        for file in files:
            if file.endswith(a):        #读取的文件类型,提取a
                old_file_path = os.path.join(root,file)
                if not os.path.exists(new_path):
                    os.makedirs(new_path)
                new_file_path = new_path + '/' +file
                print(new_file_path)
                shutil.copyfile(old_file_path,new_file_path)

    print('图片全部导出结束!'
          '等待element表进行对比') #结束通知
wb = openpyxl.load_workbook(element)  # 打开excel工作簿
ws = wb.active  # 获取活跃工作表

def two():
    for i, e in enumerate(ws[image_name_column], start=1):  # 取出第A列内容,从第二个算起
        image_file_path = os.path.join(new_path, f"{e.value}.png")  # 图片路径
        try:  # 因获取A列的第一行是标题,这里防止报错结束程序
            img = Image(image_file_path)  # 获取图片
            img.width, img.height = (120, 120)  # 设置图片大小
            # 调整表格列宽和行高
            ws.column_dimensions[image_column].width = 15
            ws.row_dimensions[i].height = 90
            ws.add_image(img, anchor=image_column + str(i))  # 插入对应单元格
        except Exception as e:
            print(e)
    wb.save(element)  # 保存
    print('执行结束')

one()
two()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值