Importing fund or stock prices from an OFX file
From GnuCash
How to Import Fund or Stock Prices From an OFX File
The attached python script show how to import prices from an OFX file. I borrowed heavily from work done by Peter Holtermann and others (price_database_example.py in src/optional/python-bindings/example_scripts). The read from OFX tool has only been tested on files from 1 source, so be wary.
#!/usr/bin/python # usage: getPrices ofxfile outfile # Read an OFX w/ an INVPOS aggregate and write the prices # to a CSV file # Brad Haack 2011-01-25 import sys fp = open(sys.argv[1]) fout = open(sys.argv[2],'w') flines = fp.readlines() inlist=0 inpos=0 id = 0 unqid=[] price=[] date=[] for line in flines: line = line.rstrip('\n') wd = line.split('>') for id in range(len(wd)): wi = wd[id] if wi == '<INVPOSLIST': # now we're in the list inlist = 1 if inlist : if wi == '<INVPOS': # now we're in the pos info aggregate inpos = 1 unqid.append(0) price.append(0) date.append(0) if inpos : if wi == '<UNIQUEID' : unqid[id] = wd[id+1] if wi == '<UNITPRICE' : price[id] = wd[id+1] if wi == '<DTPRICEASOF' : date[id] = wd[id+1] if wi == '</INVPOS': # now we're out of the pos info aggregate inpos = 0 str = '%s, %s, %s\n' % (unqid[id], date[id], price[id]) fout.write( str) if wi == '\INVPOSLIST>': # now we're not in the list inlist=0 <\pre>