一个基于 PySide6 的本地账单分类工具,支持微信和支付宝账单的自动分类。
- 📊 支持微信、支付宝账单导入(CSV/Excel 格式)
- 🏷️ 三级分类体系(一级分类 → 二级分类 → 三级分类)
- 🔍 正则表达式规则匹配,精准分类
- ✏️ 用户自定义关键词追加(无需修改系统规则)
- 📝 未分类交易自动导出,方便补充规则
- 💾 分类规则可视化编辑(增删改查)
- 🎯 右键菜单 + Delete 键快速删除分类
- 📱 界面自适应屏幕大小
Bill_classification/
├── main.py # 程序入口
├── categories_config.json # 系统分类规则
├── user_keywords.json # 用户追加的关键词
├── core/
│ ├── __init__.py
│ ├── category_manager.py # 分类管理核心
│ ├── worker.py # 后台处理线程
│ └── user_keywords_manager.py # 用户关键词管理
└── ui/
├── __init__.py
├── main_window.py # 主窗口
├── category_dialog.py # 分类管理对话框
└── widgets.py # 自定义控件
git clone https://github.com/SaeTheOne/Bill_classification.git
cd Bill_classificationpython -m venv .venv
.\.venv\Scripts\Activate.ps1pip install PySide6 openpyxl python-dateutilpython main.py- 将微信/支付宝导出的 CSV/Excel 文件拖入程序窗口
- 点击「开始处理」按钮
- 程序会自动分类并生成
完成/sc.xlsx
点击菜单栏「分类管理」→「管理分类规则」:
- 添加分类:点击对应的添加按钮(支持批量,用空格分隔)
- 重命名:双击分类名称
- 删除:右键菜单或按 Delete 键
- 追加关键词:选择三级分类,点击「追加关键词」
支出 (一级)
├── 食品餐饮 (二级)
│ ├── 三餐 (三级) ← 规则在此
│ ├── 零食 (三级)
│ └── 饮料酒水 (三级)
├── 健康医疗 (二级)
│ └── 医院 (三级)
└── ...
收入 (一级)
├── 工资 (二级)
├── 收红包 (二级)
└── ...
| 特性 | 系统规则 | 用户关键词 |
|---|---|---|
| 文件 | categories_config.json |
user_keywords.json |
| 优先级 | 低 | 高 |
| 修改方式 | 编辑 JSON 文件 | UI 界面追加 |
| 匹配方式 | 正则表达式 | 包含匹配 |
💡 用户关键词优先级更高,适合快速添加自定义分类,不会破坏系统规则。
{
"支出": {
"食品餐饮": {
"三餐": "餐饮|饭店|餐厅|食堂|快餐|早餐|午餐|晚餐|夜宵|外卖|盒饭|便当",
"零食": "零食|小吃|饼干|薯片|糖果|巧克力|坚果|果冻|辣条|薯条"
}
}
}{
"支出/食品餐饮/饮料酒水": ["桃桃乌龙", "芒果布丁"],
"支出/出行交通/共享单车": ["先骑后付"]
}| 日期 | 收支类型 | 金额 | 类别 | 子类 | 所属账本 | 收支账户 | 备注 |
|---|---|---|---|---|---|---|---|
| 2026-06-27 | 支出 | 33.4 | 食品餐饮 | 三餐 | 日常账本 | 微信钱包 | ... |
未分类交易会生成 完成/未分类交易.xlsx。
- Python 3.8+
- PySide6 >= 6.0.0
- openpyxl >= 3.0.0
- python-dateutil >= 2.8.0
MIT License