用于读/写CFONB文件的纯Python库,派生自https://github.com/akretion/pythoncfonb
python-cfonb的Python项目详细描述
简介
CFONB格式是旧文件格式 对于银行交换,由CFONB(Comitéfrançais d'Organization et 去标准化银行)。它至今仍用于检索银行对账单 或下达转移单。格式规范可以在CFONB website上找到。在
前两个用例是:读取银行对账单,并生成转账单
安装
>>> pip install python-cfonb
语句分析器
你可以读到这样的陈述:
>>> from os.path import join >>> statement_file = open(join('cfonb', 'tests', 'bank_statement.cfo')) >>> from cfonb import StatementReader >>> reader = StatementReader() >>> result = reader.parse(statement_file) >>> statement = result[0]
语句有页眉和页脚,这两个行都是语句行:
^{pr2}$行可以作为列表读取:
>>> statement.header.as_list() ['01', '30002', ' ', '00447', ...]
或者作为一个口述:
>>> statement.header.as_dict() {'bank_code': '30002', 'nb_of_dec': ' ', '_5': ...}
或者作为一个对象:
>>> header = statement.header.as_obj() >>> header.bank_code '30002'
页眉和页脚之间的语句行可以迭代:
>>> # TODO: use an interator, and hide the parse_amount in the object >>> from cfonb.parser.common import parse_amount >>> for line in statement.lines: ... l = line.as_obj() ... print parse_amount(l.amount, l.nb_of_dec) -2000.0 -1000.0 4000.0 -3000.0
转写器
准备内容:
>>> from datetime import datetime >>> from cfonb.writer.transfert import Transfert >>> transfert = Transfert() >>> transfert.setEmeteurInfos('2000121','bigbrother','virement de test',503103,2313033,1212,datetime(2011,11,27)) <cfonb.writer.transfert.Transfert instance at ...> >>> transfert.add('un test','littlebrother','credit agricole ile de france',50011,6565329000,100,'un peu d\'argent',6335) <cfonb.writer.transfert.Transfert instance at ...> >>> content = transfert.render()
可以将文件名与render方法一起使用:
>>> transfert.render(filename='./virement.cfonb') "0302 200012 ..."
- 项目
标签: