#!/usr/bin/env python

def safe_float(obj):
    'safe version of float()'
    try:
        retval = float(obj)
    except (ValueError,TypeError),diag:
        retval = str(diag)
    return retval

def main():
    'handles all the data processing'
    log = open('cardlog.txt','w')
    try:
        ccfile = open('carddata.txt','r')
    except IOError,e:
        log.write('no txns this month\n')
        log.close()
        return

    txns = ccfile.readlines()
    total = 0.00
    log.write('account log:\n')

    for eachTxn in txns:
        result = safe_float(eachTxn)
        if isinstance(result,float):
            total +=result
            log.write('data...processed\n')
        else:
            log.write('ignored:%s'%result)
    print '$%.2f (new balance)' % (total)
    log.close()

if __name__=='__main__':
    main()
