You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何读取Excel数据并为同名图片添加对应专属文本

问题:为对应图片添加Excel中的独特文本内容

我有一个包含数据的Excel文件,希望将其中的数据写入与该Excel文件同名的图片中。现有如下Python代码,但该代码会为所有图片添加相同的文本,我需要实现为每张图片添加对应独特文本的功能。

原代码:

from PIL import Image,ImageDraw,ImageFont
import glob
import os

images=glob.glob("E:\Images/*.jpg")

for img in images:
    images=Image.open(img)
    draw=ImageDraw.Draw(images)
    font=ImageFont.load_default()
   
    text=" Sensor Longitude Sensor Latitude"

   
    draw.text((0,240),text,(250,250,250),font=font)
    images.save(img)

解决方案

实现思路

  1. 读取Excel数据,建立图片文件名与对应文本的映射关系
  2. 遍历图片时,根据当前图片的文件名匹配对应的文本内容
  3. 将匹配到的独特文本绘制到对应图片上

修改后的代码

首先安装所需依赖库:

pip install pandas openpyxl pillow

完整代码:

from PIL import Image, ImageDraw, ImageFont
import glob
import os
import pandas as pd

# 读取Excel数据:假设Excel包含两列,'图片文件名'存xxx.jpg,'对应文本'存要添加的内容
excel_path = "你的Excel文件路径.xlsx"
df = pd.read_excel(excel_path, engine="openpyxl")
# 转成字典,方便通过文件名快速查找对应文本
text_mapping = df.set_index('图片文件名')['对应文本'].to_dict()

# 获取所有目标图片路径
image_paths = glob.glob(r"E:\Images/*.jpg")

# 处理每张图片
for path in image_paths:
    # 提取图片的文件名(不含路径)
    filename = os.path.basename(path)
    # 获取对应文本,无匹配时用默认值
    current_text = text_mapping.get(filename, "无对应数据")
    
    # 打开图片并准备绘制
    img = Image.open(path)
    draw = ImageDraw.Draw(img)
    font = ImageFont.load_default()
    
    # 绘制文本(位置、颜色可根据需求调整)
    draw.text((0, 240), current_text, (250, 250, 250), font=font)
    
    # 保存修改后的图片
    img.save(path)

关键说明

  • 确保Excel里的图片文件名列和图片的实际文件名完全一致(包括后缀,比如.jpg)
  • os.path.basename()用于从完整路径中提取纯文件名,保证和Excel数据的匹配性
  • text_mapping.get()方法可以避免因图片无对应数据导致的报错,同时设置默认文本

内容的提问来源于stack exchange,提问作者yahya javed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:50:25