复式记账助手
概述
账本就是一个 .beancount 文本文件,版本可控、可 diff、可脚本化处理。适合程序员/小团队做透明、可审计的记账。
何时使用
- 想用纯文本方式记账
- 校验已有账本是否有错误
- 从账本生成余额/报表(后续扩展)
快速使用
# 列出所有账户
python3 scripts/ledger_report.py accounts 账本.beancount
# 每个账户期末余额
python3 scripts/ledger_report.py balance 账本.beancount
# 按账户类型(Assets/Liabilities/...)汇总
python3 scripts/ledger_report.py summary 账本.beancount
# 账户层级树
python3 scripts/ledger_report.py tree 账本.beancount
账本草稿示例:
2024-01-01 open Assets:Cash CNY
2024-01-01 open Expenses:Food CNY
2024-01-02 * "午餐"
Assets:Cash -30 CNY
Expenses:Food 30 CNY
依赖安装
# 提示:脚本用相对路径 scripts/,请先 cd 到本技能目录再运行
python3 -m pip install beancount
常见错误 / 注意
- beancount 库为 GPL-2.0:作为 CLI 调用一般无需开源你的技能
- 已支持余额表 / 汇总 / 树;多币种时余额按币种分行展示
- commodity 建议显式声明(如
2024-01-01 commodity CNY)以避免警告
实测验证(v0.1.0)
- 核心依赖:
beancount - 安装体积:🟢 7.0 MB(依赖闭包实测,轻量级)
- 环境要求:无外部二进制依赖。
- 单元测试:
python3 -m unittest tests.test_...(须 cd 到本技能目录运行) - CLI 冒烟:已通过端到端实测
已验证行为
- ✅ 加载 .beancount 账本,输出条目数/账户数
- ✅ 余额表(balance)、按类型汇总(summary)、账户树(tree)
已知边界 / 坑
- ⚠️ 需先写对 beancount 语法(open 账户后才能记账)
微信扫一扫