家庭财务记账系统,用于记录收支、查看余额及月度统计。当用户:1)记录消费、支出、收入(如“花了XX元”“发工资XX元”);2)查询余额(如“还剩多少钱”“余额多少”);3)进行财务统计(如“这个月花了多少”“月度报表”)时使用此技能。
bash
# 快速记账
python3 /path/to/finances/scripts/finance_db.py --add 账本 账户 类型 金额 分类 描述
# 查看所有账户余额
python3 /path/to/finances/scripts/finance_db.py -b
# 月度统计报表
python3 /path/to/finances/scripts/finance_db.py -s [YYYY-MM]
参数说明示例账本账本名称default账户账户名称或ID主账户 / B001类型收入/支出/转账收入 / 支出金额数字金额79.7分类消费分类餐饮 / 工资 / 购物描述交易描述肯德基 / 月薪
text
用户: "今天搓一顿肯德基,79块7"
操作: python3 .../finance_db.py --add default 主账户 支出 79.7 餐饮 肯德基
text
用户: "今天发工资了,15000"
操作: python3 .../finance_db.py --add default 主账户 收入 15000 工资 月薪
text
用户: "看一下所有账户"
操作: python3 .../finance_db.py -b
text
用户: "看一下这个月花了多少"
操作: python3 .../finance_db.py -s 2026-04
转账需要记录 两条 交易(一出一入):
假设用户说"从主账户转1000到日常支出":
python
# 第一条:主账户支出100(转出)
python3 .../finance_db.py --add default 主账户 支出 1000 转账 转至日常支出
# 第二条:日常支出收入1000(转入)
python3 .../finance_db.py --add default 日常支出 收入 1000 转账 来自主账户
使用Python脚本查询:
python
python3 -c "
import sqlite3, datetime
conn = sqlite3.connect('{WORKSPACE}/finances/db/finance.db')
conn.row_factory = sqlite3.Row
cur = conn.cursor()
week_ago = (datetime.datetime.now() - datetime.timedelta(days=7)).strftime('%Y-%m-%d')
cur.execute('''
SELECT t.date, t.amount, t.category, t.description, a.name as account
FROM transactions t
JOIN accounts a ON t.account_id = a.id
WHERE t.date >= ?
ORDER BY t.date DESC
''', (week_ago,))
for r in cur.fetchall():
print(f\" {r['date']} ¥{r['amount']:.2f} [{r['category']}] {r['description']}\")
conn.close()
"
{WORKSPACE}/finances/db/finance.dbreferences/finance.mdID账户名称B001主账户B002储蓄账户B003日常支出B004梦想基金B005医疗基金B006零花钱B007游戏账户B008数字资产B009备用账户B010养老账户AB011养老账户BB012子女基金B013二手平台B014投资账户