小店整理资料时,库存表、商品图片和供货文件常常分散在一个目录里。这篇把任务限定为一件能检查的事:让 AI 起草一个本机 Python 脚本,把 CSV 清理、资料归档、图片缩小放进同一流程。练习数据是虚构的,脚本只写到新建的输出目录。

先写验收条件,再让模型写代码

我先准备一个库存 CSV,包含 SKU、商品名、单价和库存数;再放入图片和供货说明。期望结果是:

  • 去掉表格字段两端的空格,把缺少 SKU、无效价格或库存格式错误的行单独列出来;
  • 对有效行计算库存金额,使用十进制金额,避免浮点小数误差;
  • 按扩展名复制资料文件;
  • 修正图片方向,把最长边缩到 1200 像素,不放大小图,统一转成 JPG;
  • 遇到损坏图片继续处理其他文件,并记录错误。

验收卡和虚构输入文件都在练习包中。先列出预期,再写提示词,能把“看起来能运行”变成逐项可核对的结果。

选择模型并实测生成

这次任务要生成一段带文件操作、CSV 校验和图片处理的 Python 脚本。我用本机 Ollama 的 Gemma4-12B 生成初稿,单次耗时 78.44 秒,模型加载 9.71 秒;输入 288 tokens,输出 1,620 tokens。Ollama 的模型说明将 Gemma 4 列为支持代码任务的模型家族,12B 版本可本机运行。选择它是因为目标是代码初稿,电脑已有模型,不需要付在线调用费用。

模型初稿能完成主要流程,但复核后发现几处边界问题:特殊数值可能作为价格通过;表格列数异常可能让整批中断;相互包含的输入输出路径没有完全拦住;重跑可能覆盖旧结果;同名文件生成的名字也不清楚。我们保留了模型的原始回复,并修正这些问题:非法表格行和损坏图片各自记录,遇到已有输出目录就退出,文件重名时追加序号。不要把模型一次写出的代码直接用于真实文件。

安装并运行

先解压练习包,在终端进入“资料练习包”目录。建议建立 Python 虚拟环境并安装 Pillow:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install Pillow
python batch_shop_assets.py input output

第一次运行会新建 output/。脚本不改 input/;如果输出目录已经存在,会拒绝运行。需要重跑时换成新的目录名,例如:

python batch_shop_assets.py input output-2

运行后检查这些结果:

  • inventory_clean.csv:保留字段清理后的有效记录,并增加 amount 列;
  • inventory_errors.csv:带原始行号和错误原因,供你回原表复核;
  • files/:按扩展名归档的资料副本;
  • images/:经过方向修正、缩小和格式统一的图片;
  • image_errors.txt:未能读取的图片及原因。

脚本依赖 Pillow 的图片解码能力;安装或处理不同格式时仍可能遇到版本和文件兼容差异。先用副本和小批量资料验证,再处理重要文件。

本机检查结果

我用包里的虚构数据实跑:5 条库存记录中,2 条进入清洁表,3 条进入错误表;陶杯单价 39.90、库存 12,金额计算为 478.80。2200×1500 的图片缩小为 1200×818,640×900 的小图没有放大。透明 PNG 变成白底 JPG;重名资料和图片都保留为不同文件,损坏图片被记录后跳过。再次指定已经存在的 output/ 时,脚本以退出码 2 停止,旧结果没有被覆盖。

Python 标准库的 pathlib 用于路径和文件遍历,csv 用于表格读写;图片方向修正使用 Pillow 的 ImageOps.exif_transpose。这些库负责机械处理,商品名、价格和库存含义仍要由店主确认。样例只验证了当前这些输入,不等于兼容每种 Excel 导出、编码、相机格式或超大图片。

下载练习包

下载小店资料批处理练习包,内含原始虚构样例、提示词、模型初稿和人工修正后的脚本。请先在复制出来的练习目录运行,不要直接对唯一一份真实资料执行。