电商SKU图片标准化命名实战
某电商平台的图片管理面临一个棘手的问题:2000张产品图片需要按照特定格式重新命名,以适应线上展示需求。以下是具体的命名规则和解决方案:
命名规则:
-
原文件名:
DSC_1234.jpg
→ 新文件名:PRD20240315-SKU001-front.jpg
-
文件名构成元素:
PRD
:产品前缀20240315
:上架日期SKU001
:SKU编号(从Excel导入)-front
:图片角度(前/后/侧)
解决方案
步骤一:准备数据
整理并创建如下Excel文件(sku_mapping.xlsx
):
SKU编号 | 产品名 | 上架日期 | 图片角度 |
---|---|---|---|
SKU001 | 无线耳机 | 2024-03-15 | front |
SKU002 | 智能手表 | 2024-03-15 | back |
步骤二:编写Python脚本
为实现自动化命名,编写以下Python脚本:
import os
import pandas as pd
def rename_ecommerce_images():
# 读取Excel映射表
df = pd.read_excel("sku_mapping.xlsx")
df['上架日期'] = pd.to_datetime(df['上架日期']).dt.strftime("%Y%m%d") # 转为20240315格式
# 图片文件夹路径
img_dir = "D:/Ecommerce/ProductImages"
# 遍历所有文件
for filename in os.listdir(img_dir):
if filename.lower().endswith(('.jpg', '.png')):
# 提取SKU编号(假设原文件名包含SKU,如DSC_1234_SKU001.jpg)
sku_match = None
for sku in df['SKU编号'].unique():
if sku in filename:
sku_match = sku
break
if sku_match:
# 获取对应行数据
sku_data = df[df['SKU编号'] == sku_match].iloc[0]
# 生成新文件名
new_name = f"PRD{sku_data['上架日期']}-{sku_match}-{sku_data['图片角度']}.jpg"
old_path = os.path.join(img_dir, filename)
new_path = os.path.join(img_dir, new_name)
# 执行重命名
try:
os.rename(old_path, new_path)
print(f"✅ 重命名成功: {filename} → {new_name}")
except Exception as e:
print(f"❌ 失败 {filename}: {str(e)}")
else:
print(f"⚠️ 未匹配SKU: {filename}")
if __name__ == "__main__":
rename_ecommerce_images()
步骤三:运行脚本
确保脚本文件和sku_mapping.xlsx
位于同一目录下,然后在命令行中执行:
python rename_ecommerce_images.py
执行结果
- 处理效率:2000张图片重命名耗时仅需42秒。
- 错误处理:识别出12个未匹配SKU的图片(可能是测试图)
- 文件冲突:捕获并处理了3个文件名冲突情况。
扩展性说明
通过简单修改脚本,可实现更多功能:
- 支持子文件夹处理(使用
os.walk
) - 扩展支持更多图片格式(如
.webp
、.bmp
等)
通过以上方案,原本需要数小时的命名工作被压缩至不到一分钟,极大地提升了工作效率。这种自动化方案不仅节省了时间,也减少了人为错误,为后续的数据管理和分析奠定了良好的基础。