|
|
|
#!/usr/bin/python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
#
|
|
|
|
#***************************************************************************
|
|
|
|
# csvsecurityqif.py - description
|
|
|
|
# -------------------
|
|
|
|
# begin : Sat 24 Oct. 2009
|
|
|
|
# copyright : (C) 2009 by Allan Anderson
|
|
|
|
# email : aganderson@ukonline.co.uk
|
|
|
|
#
|
|
|
|
#***************************************************************************/
|
|
|
|
#
|
|
|
|
#***************************************************************************
|
|
|
|
#* *
|
|
|
|
#* This program is free software; you can redistribute it and/or modify *
|
|
|
|
#* it under the terms of the GNU General Public License as published by *
|
|
|
|
#* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
#* (at your option) any later version. *
|
|
|
|
#* *
|
|
|
|
#***************************************************************************/
|
|
|
|
import csv
|
|
|
|
|
|
|
|
# *** NOTE ***
|
|
|
|
# It may be necessary to remove the second line, before running.
|
|
|
|
|
|
|
|
# Simple utility to convert a csv format Securities file, as from later
|
|
|
|
# editions of Quicken, to qif format for KMyMoney2.
|
|
|
|
# It and its data files are expected to be in the same directory.
|
|
|
|
#
|
|
|
|
# First, make the script executable: chmod u+x csvsecurityqif.py .
|
|
|
|
# Run by './csvsecurityqif.py'.
|
|
|
|
# You will be prompted to enter input and output filenames.
|
|
|
|
# The entries in this input file contain a number of fields that are
|
|
|
|
# not documented and which KMyMoney2 does not handle.
|
|
|
|
# These fields are accepted and suffixed with 'M' in the output file.
|
|
|
|
# Anything of importance in them will need to be copy/pasted into KMM.
|
|
|
|
|
|
|
|
fin = input('Please enter the input Securities filename (.csv, .PRN, etc.) : ')
|
|
|
|
fout = input('Please enter the output filename (add .qif) : ')
|
|
|
|
line = csv.reader(open(fin, "rb"))
|
|
|
|
outputfile = open(fout, 'w')
|
|
|
|
next(line) # Skip header line. Comment out if no header.
|
|
|
|
line_list = []
|
|
|
|
line_list.extend(line)
|
|
|
|
line = "!Option:AutoSwitch\n"
|
|
|
|
outputfile.write(line)
|
|
|
|
|
|
|
|
for data in line_list:
|
|
|
|
line = "!Account\n" + "N" +data[0] + "\n" + "TMutual\n" + "^\n"
|
|
|
|
line = line + "!Type:Security\n"
|
|
|
|
line = line + "N" +data[0] + "\n"+ "S" + data[1] + "\n"+ "TUnit/Inv. Trust" #+"\n"
|
|
|
|
line = line + "M" + data[2] + "\n"+ "M" + data[3] + "\n"+ "M" + data[4] + "\n"+ "M" + data[5] + "\n"+ "M" + data[6]
|
|
|
|
line = line + "\n^\n"
|
|
|
|
#print line
|
|
|
|
outputfile.write(line)
|
|
|
|
|
|
|
|
outputfile.close()
|