正在重新构造CSV文件
Restructing a CSV file?
我有基本的脚本知识,但我不知道如何解决这个问题。我正在尝试将我的银行自动生成的CSV文件转换为YNAB(你需要预算)可以理解的格式。
YNAB格式(csv文件的所需格式)
Date,Payee,Category,Memo,Outflow,Inflow
07/25/10,Sample Payee,,Sample Memo for an outflow,100.00,
07/26/10,Sample Payee 2,,Sample memo for an inflow,,500.00
银行格式(csv文件的当前状态)
"Account Type","Account Number","Transaction Date","Cheque Number","Description 1","Description 2","CAD$","USD$"
Chequing,00401-1234567,8/19/2013,,"Transfer","WWW TRANSFER - 0645 ",50.00,,
Chequing,00401-1234567,8/19/2013,,"STARBUCKS AC. U","IDP PURCHASE - 6678 ",-1.94,,
(所有伪造数据)
如何将当前CSV文件转换为所需格式?
这应该做:
import csv
import sys
if sys.hexversion >= 0x3000000:
inp = input
else:
inp = raw_input
def main():
input_file = inp('Name of bank statement file? ')
output_file = inp('Save YNAB output file as? ')
with open(input_file, 'rb') as inf, open(output_file, 'wb') as outf:
incsv = csv.reader(inf)
outcsv = csv.write(outf)
# deal with headers
header = next(incsv)
outcsv.write(['Date', 'Payee', 'Category', 'Memo', 'Outflow', 'Inflow'])
# translate data
for row in incsv:
cad = float(row[6])
ynab = [row[2], row[4], '', row[5], -cad if cad < 0. else '', cad if cad > 0. else '']
outcsv.writerow(ynab)
if __name__=="__main__":
main()
我强烈鼓励你在这项任务中提高(甚至开始)你的python抓取技能。
首先学习如何读取文件并将其拆分为多个部分(列表列表)。然后练习打印值,然后打印整个输出行(使用正确排序的值)。
然后加入一些排序逻辑,以便根据需要的条件输出各种行。
相关文章:
- 通过CSV文件上载更新数据库表
- 在.csv文件中写入学位符号
- PERL-下载CSV文件不完整
- 将CSV文件从URL导入Node.js
- Get方法获取csv文件的内容
- 将JSON转换为放入Sdcard中的CSV文件
- 如何使用d3.js从csv文件中绘制areaplot?请任何人分享代码
- 正在以javascript读取本地csv文件
- 处理字段中带有换行符的csv文件-node.js
- 如何将CSV数据从变量下载到CSV文件
- Safari 5.1.7下载文件名未知的csv文件
- 如何读取csv文件并将其转换为javascript中的对象
- 尝试从csv文件中检索单个值时出现问题
- 如何用javascript下载巨大的CSV文件
- 在将csv文件中的数据分配给数组变量时增强了d3代码
- 如何使用javascript更新csv文件
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 将Excel/CSV文件中的数据导入angularjs-json对象中
- 正在读取高图表中上载的csv文件
- 如何使用 Java 脚本从 csv 文件中查找每列的数据类型