可以通过以下代码来确保在beancount文件中创建双向记账交易和分录:
from beancount.core import amount, data, flags from beancount.core.amount import Amount from beancount.core.number import Decimal
tx = data.Transaction( date=date(2021, 10, 15), flag=flags.FLAG_OKAY, payee="Example Payee", narration="Example description", postings=[ data.Posting( account="Assets:Checking Account", amount=amount.Amount(Decimal("-1000"), "USD"), price=None, flag=None, meta={} ), data.Posting( account="Expenses:Example Expense", amount=amount.Amount(Decimal("1000"), "USD"), price=None, flag=None, meta={} ), ], links={}, tags=set(), meta={} )
with open('/path/to/file.beancount', 'a') as f: f.write(tx.str() + '\n')
这将创建一个交易,其中包含两个分录,一个在“Assets:Checking Account”中,一个在“Expenses:Example Expense”中。代码中有注释以帮助理解。将交易写入文件时,使用“append”模式可以确保新的交易被添加到文件末尾,而不覆盖现有内容。