将事务的csv文件转换为ofx或qif文件

csv2ofx的Python项目详细描述


#csv2ofx

csv2ofx内置了从mint、yoodlee和xero导入csv文件的支持。csv2ofx已经在以下配置上进行了测试:

*macos x 10.13.1
*python 3.6.4

3.5](http://www.python.org/download)(MacOS X预装了Python)


\

sudo pip install csv2ofx

打印功能

iterstringio
来自csv2ofx的导入实用程序
来自csv2ofx的导入=ofx.clean_trxns(trxns)
data=utils.gen_数据(clean_trxns)
content=it.chain([ofx.header(),ofx.gen_body(data),ofx.footer()])



iterstringio(content):
print(line)
```````

*正常的qif使用情况*

```` python
导入,打印功能

=qif.gen_groups(记录)
trxns=qif.gen_trxns(组)
cleaned_trxns=qif.clean_trxns(trxns)
data=utils.gen_data(cleaned_trxns)
content=it.chain([qif.gen_body(数据),qif.footer())

iterstringio中的行(内容):
打印(行)
````



描述:csv2ofx将csv文件转换为ofx和qif

positional参数:
source源csv文件(默认为stdin)
dest输出文件(默认为stdout)

--帮助显示此帮助消息并退出
-a类型,--帐户类型
ofx的默认帐户类型"checking",qif的默认帐户类型"bank"。
-e日期,--结束日期结束日期
-l语言,--语言
s日期,--开始日期
字段名,--拆分字段名
用于单个分录语句的拆分帐户的字段
-c行,--chunksize行
一次要处理的行数
-v,--version显示版本并退出
-q,--qif启用"qif"输出,而不是"ofx"
-o,--覆盖目标文件(如果存在的话)
-d,--debug显示传递给解析器的选项和参数
-v,--详细详细输出
`````

*正常用法*


*打印输出到stdout*


*从stdin读取输入*


*qif输出*


*指定从一年前到昨天的日期范围,qif输出*


*使用yoodlee设置*

csv2ofx-m yoodlee file.csv

新映射必须放在"csv2ofx/mappings"文件夹中。映射对象由一个字典组成,该字典的键是ofx/qif属性,其值是应该从记录(csv行)返回相应值的函数。映射函数将接受一个记录,例如

``python
{account':'savings 2',date':'1/3/15',amount':'5000'}
````



``python
from operator import itemgetter

mapping={
'bank':'betterbank',
'account':itemgetter('account'num'),
'date':itemgetter('trx'u date'),
'amount':itemgetter('trx'u amount')}
`````

,但也可以进行更复杂的解析,例如,


``python
mapping={
‘account’:lambda r:r['details'].split(":")[0],
‘date’:lambda r:%s/%s/%s'%(r['mon月',r['day'],r['ye年'],
‘amount’:lambda r:r['amount']*2}
````



//‘account:r[%s/%s/%s/%s/%s'%(r['mon月',r['day']],r['day'],r['ye/>
属性描述|默认字段示例
----------------
`账户交易账户银行支票
`日期交易日期日期5/4/10
`金额交易金额30.52美元

可选值属性

|说明默认值
------------
`has_header` csv文件是否有header行true
`is_split` csv文件是否包含split(复式)事务false
`currency`货币iso代码美元
`delimiter` csv字段分隔符,

受款人名称N/A空壳
《票据N/A银行`账户bb账户账户账户账户账户账户账户账户账户账户账户账户账户账户/>
设置

pip安装-rdev requirements.txt

\如果您添加了新的类或函数,请使用示例添加相应的文档块。另外,确保python linter和nose测试通过。

方法如下:

1.分叉和克隆。

``` bash
git clone git@github.com:<;您的用户名>;/csv2ofx.git
cd csv2ofx
```

2。安装一个新的[virtualenv](http://www.virtualenv.org/en/latest/index.html)

``bash
mkvirtualenv--没有站点包csv2ofx
activate csv2ofx
python setup.py develop
pip install-r dev requirements.txt
``

3。为本地开发创建一个分支

`` bash
git checkout-b错误修复或功能的名称
```

4。做你的改变,茹n linter和tests,并通过github网站提交pull请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在jbosseap6上部署CXF web服务时发生java错误。1.1   tablecell中的java Progressbar和标签   关于Java中此引用的问题   java如何使用下拉列表中选择的值过滤c:forEach给出的结果?   对包含其他对象的类使用BoundedMapperFacade的java Orika映射   java如何测试配置的“键”和“值”。属性文件?   java Ctrl+箭头键、多字变量名和eclipse pydev   无法通过运行索引执行基于java服务器表单的身份验证。jsp而非servlet   如何在java中使用正则表达式更改匹配子字符串的前缀和后缀   java如何安排selenium脚本在一周中的某一天的某个特定时间运行?   FileWatcher中的java溢出事件   java将堆栈大小设置为线程在安卓中似乎没有什么区别   xml为什么Java在我的XPath中添加反斜杠?   具有多个SQL语句的java MySQL ConnectorJ   为什么在eclipse中运行Java应用程序时JFrame不可见?   java正则表达式将2个字符替换为1个字符   UTC时区上的java hibernate+spring启动存储日期故障   Java未正确格式化日期   java双链接列表getData问题