
成果示例
把 9 家门店的月度销售文件合并成一份 Excel 报表
如何运行
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO 文件夹:sales/2026-10,找到 9 个文件
2026-11-02 09:14:03 INFO shop-01.csv:1,284 行
2026-11-02 09:14:04 INFO shop-02.xlsx:967 行
2026-11-02 09:14:04 WARN shop-07.csv:跳过 3 行缺少价格的记录(第 88、412、913 行)
2026-11-02 09:14:05 INFO 完成:10,412 行 -> report-2026-10.xlsx(工作表“销售”和“汇总”)
改设置,不改代码
每家门店的列名都写在 settings.ini 中,所以新增一家门店或某列改了名,只需在那里改一行:
[columns]
date = 日期, 销售日期, 日
product = 商品, 品名, 名称
quantity = 数量, 件数, 个数
price = 价格, 单价
部分代码
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""读取一家门店的文件,并把列名改为报表使用的列名。"""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}:找不到“{name}”对应的列(已查找 {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
**文件:**一个 ZIP 压缩包,内含 merge_sales.py(310 行)、settings.ini、requirements.txt 和 README,说明如何安装 Python、运行脚本以及日志中每条消息的含义。客户在自己的电脑上运行。
**客户:**一家拥有 9 家门店的小型文具连锁店;每家门店每月以 CSV 或 Excel 文件发送当月销售数据,各自的列名略有不同。 **任务:**一个脚本,读取文件夹中的所有文件,把各列统一成同一格式,并生成一份 Excel 报表,包含全部销售记录和一张按门店汇总的工作表。
客户及所有信息均为虚构。
服务介绍
一份多年来从网店、CRM 和各种表格中汇总的联系人名单,最后往往同一个人出现三次,电话有五种写法,邮箱里还夹着空格或错别字。这个 Python 脚本在您的电脑上清理您自己的名单:去掉多余空格、修正大小写、统一电话号码格式、标出格式有误的邮箱,并按邮箱或电话找出重复项,然后保存一份干净的文件,以及一份单独记录被删除内容的文件,方便您核对。请发来几行与您的数据相似、但使用虚构姓名、电话和邮箱的示例,以及您的规则。名单永远不会发给我们,脚本也绝不会把任何内容发送到任何地方。它检查的是邮箱地址的格式,而不是邮箱是否真实存在。
服务内容
- 您将获得一个 ZIP 压缩包,内含 Python 脚本、附分步说明的 README,从标准版起还包含写有您清理规则的设置文件;订单页面上也能查看代码。
- 找出重复项按邮箱、按电话,或两者结合
- 统一电话格式没有国家代码的号码会加上您设定的代码
- 保留被删除的行单独一个文件,记录每一条被删除或合并的行
- 只在您的电脑上您的名单绝不会被上传或发送
- 代码易读附有注释,以后修改规则很方便
服务流程
- 1规定您发来虚构的示例行和判定重复的规则
- 2代码我们编写脚本和运行说明
- 3试用您在名单副本上运行,并查看被删除的行
- 4修改您在套餐范围内提出修改,如有报错信息请一并发来
需要您提供的信息
名单的列名,以及 10 到 20 行使用虚构姓名、电话和邮箱、但写法与真实数据一致(包含同样类型的混乱)的示例。您的规则:什么算重复、保留哪一行(最新的、信息最全的)、本地电话号码使用的国家代码,以及电话应该怎么写。CSV 还是 Excel,以及您的系统:Windows、macOS 还是 Linux。切勿发送真实名单。
我们会询问您:
- 名单来自哪里?
- 什么算重复?
- 保留哪一行?
- 电话应该写成什么样?
套餐对比
付款保障
您在下单时付款,但款项仅在您验收后才会结算。
- 固定价格付款后套餐价格不会变动。
- 款项先冻结付款时,这笔金额只是被冻结。您验收后,款项才会结算给平台。
- 交付前检查每份成果在送达您之前都会经过质量检查,验收前您可以在订单页面查看。
- 免费修改在需求说明范围内,您可以在套餐允许的次数内提出修改。
- 3 天后自动验收如果交付后 3 天内您既未验收也未提出修改,工作将自动验收。如果您在交付后于订单聊天中留言,订单将暂停自动验收;我们回复后,可能会重新开始计算 3 天,并会在聊天中告知您。
- 返工或全额退款如果成果与您的需求说明不符且修改后仍未解决,或工作耗时超过交付期限的两倍,请在订单聊天中留言:我们将为您返工或全额退款。
问题与解答
能告诉我哪些邮箱已经失效吗?
不能。它检查地址的写法是否正确(一个 @、有域名、没有空格),并标出域名中常见的拼写错误。邮箱是否存在只有邮件服务商知道,这种检查不在本服务范围内。
能把“John Smith”和“J. Smith”识别为同一个人吗?
高级版会把这类疑似重复项标出来,由您决定,而不会擅自合并,因为仅凭姓名并不可靠。按邮箱或电话完全重复的项会按您的规则合并。
我的联系人名单安全吗?
它从不离开您的电脑:脚本由您自己运行,代码中没有任何联网功能,我们只能看到您发来的虚构示例行。请像以前一样妥善保管名单及其清理后的副本。
能添加联系人或补全缺失的邮箱吗?
不能。它只整理您已有的联系人,不会查找任何人,也不会收集新数据。
没有找到答案?