ListCompare_std 清单比对工具
版本:1.0.1
把两份清单文件(Excel / CSV)丢进来,自动告诉你:哪些记录只有 A 表有、哪些只有 B 表有、哪些两边都有但金额对不上——最后生成一份 Excel 差异报告,并打包好交付文件夹。
这个工具是干什么的?
适合这些场景:
- 两边的订单台账需要对账
- 系统导出的表和人工维护的表要核对
- 任何"两份清单,找出差异"的活儿
安装
环境要求
- Python 3.10 或更高
- 安装依赖库:
pip install pandas openpyxl
放置位置
把整个 ListCompare_std 文件夹放到任意目录即可,无需额外安装步骤。
怎么用
打开命令行(Windows 上可以用 cmd 或 PowerShell),切换到 ListCompare_std 目录,运行:
cd ListCompare_std
python run_pipeline.py --file-a test_data/test_a.xlsx --file-b test_data/test_b.xlsx
上面这条命令用的是自带的示例数据,可以直接跑通。换成你自己的文件时,把两个路径替换掉即可。
参数说明
| 参数 | 必填吗 | 干什么用 | 不填会怎样 |
| -------------- | --- | ---------------- | -------------------------------------- |
| --file-a | 必填 | 第一份文件路径 | 不填无法运行 |
| --file-b | 必填 | 第二份文件路径 | 不填无法运行 |
| --key-col | 选填 | 用来对账的那一列,比如"订单号" | 自动用两边共有的第一列 |
| --value-col | 选填 | 要核对金额的那一列,比如"金额" | 自动找两边共有的第一个数字列 |
| --encoding | 选填 | CSV 文件的编码 | 默认 utf-8;打开 CSV 乱码时试试 --encoding gbk |
| --tolerance | 选填 | 金额差多少以内算"一致" | 默认 0.01 |
| --output-dir | 选填 | 结果存到哪 | 默认存到 ListCompare_std\output |
完整示例
python run_pipeline.py --file-a "D:\对账\甲方台账.xlsx" --file-b "D:\对账\我方台账.xlsx" --key-col 订单号 --value-col 金额
结果在哪看?
跑完后,所有结果都在 ListCompare_std\output\ 文件夹里:
output\
├── 差异报告.xlsx ← 打开这个看差异明细
├── 20261008_交付包\ ← 报告副本 + 你传入的两份原始文件
└── 20261008_交付包.zip ← 压缩包,方便直接发给对方
差异报告.xlsx 里有四个页签:
| 页签 | 内容 | | ---- | ------------------- | | 汇总 | 三类差异各多少条 | | 只在A中 | A 表有、B 表没有的记录 | | 只在B中 | B 表有、A 表没有的记录 | | 值不同 | 两边都有、但金额对不上的记录(附差值) |
支持什么格式?
支持:
.xlsx(Excel).xls(老版 Excel).csv(逗号分隔的文本表格)
不支持:
.txt、.json、.docx、.pdf- 图片(拍照/截图的表格请先转成 Excel 或 CSV)
常见问题
Q:提示"文件不存在"?
检查路径有没有写错。路径里有空格或中文时,用英文双引号把整个路径括起来。
Q:CSV 打开后是乱码?
加参数 --encoding gbk 再试一次。
Q:自动选的数值列不是我想比的那一列?
自动检测取的是"排除主键列后的第一个数值列",如果你的表格里"数量"排在"金额"前面,就会选中"数量"。显式指定即可:--value-col 金额。
Q:想重新生成示例数据?
运行 python make_test_data.py。如果找不到 test_data 文件夹,请手动新建一个名为 test_data 的文件夹,再运行该脚本。
反馈渠道
Q:如何将我使用意见发出?
推荐在评论区写下你的意见,或者直接发给我们的邮箱:zenotect8621@ldwtai.cn。
目录结构
ListCompare_std/
├── run_pipeline.py ← 总入口,你只需要用这一个
├── make_test_data.py ← 生成示例数据
├── test_data/ ← 示例数据
├── 01_reader/ ← 读表模块
├── 02_compare/ ← 比对模块
├── 03_reporter/ ← 报告模块
├── 04_output/ ← 打包模块
└── output/ ← 结果输出(运行后自动生成)
微信扫一扫