I am trying to create a table in python from a csv file where I input
which columns I would like to see, and the table only shows those
columns. I have attached an example of the csv file i am using, and
some of the code I have written. I am having trouble converting
variables between lists, dictionaries and tuples. Is there a name for
what I am attempting to do? any help to get me on the right track with
this is appreciated.

test.csv
Date    Open     High    Low    Close   Volume  Adj Close
12/14/09        110.01  110.7   109.5   110.24  16316000        110.24
12/11/09        110.6   110.82  108.72  109.32  28983100        109.32
12/10/09        110.66  111.03  110.04  110.82  20491700        110.82
12/9/09 111.6   112.48  109.38  110.84  37104900        110.84
12/8/09 112.76  113.06  110.21  110.95  37630800        110.95
12/7/09 111.51  114.22  111.44  113.11  42480500        113.11
12/4/09 117.15  117.26  112.41  113.75  79182600        113.75
12/3/09 118.57  119.54  118.03  118.7   28802100        118.7
12/2/09 118.8   119.27  118.3   119.18  30994600        119.18
12/1/09 117.3   117.93  116.78  117.38  27641000        117.38
11/30/09        114.48  115.89  114.27  115.64  16402300        115.64
11/27/09        113.08  115.81  113.02  115.06  21234400        115.06
11/25/09        115.69  116.88  115.53  116.62  24553300        116.62
11/24/09        114.73  114.81  113.97  114.73  22599700        114.73
11/23/09        114.67  115.12  113.99  114.29  24422700        114.29
11/20/09        111.74  112.94  111.54  112.94  17302500        112.94
11/19/09        111.85  112.4   110.76  112.3   21239800        112.3
11/18/09        112.69  113.09  111.8   112.25  22320600        112.25
11/17/09        111.09  111.99  110.9   111.97  19732900        111.97
11/16/09        110.7   112.16  110.65  111.63  25002300        111.63
11/13/09        108.32  109.8   108.14  109.74  17246000        109.74
11/12/09        109.16  109.56  108.12  108.21  17848300        108.21
11/11/09        109.49  109.71  109     109.6   17654100        109.6
11/10/09        108.03  108.78  107.7   108.39  15973300        108.39
11/9/09 108.69  108.75  107.91  108.19  18444800        108.19
11/6/09 107.38  108.04  107.06  107.43  14789000        107.43
11/5/09 106.81  107.2   106.6   106.98  10189000        106.98
11/4/09 107.11  107.68  106.43  107.1   27125500        107.1

table.py;

import csv

(D, O, H, L, C, V, A) = (11, 'open', 'high', 'low', 'close', 66, 77)

d = {'high':H, 'low':L, 'close':C, 'open':O}

spacing = '%-*s'

w=raw_input('what do you want to see? (use commas to seperate values)
')
y=w.lower()
x=y.replace(' ','')
print x

p = x.split(',')                    #this takes string, converts to
list
print p
num = len(p)
format = num*spacing
width = 12*num
wi = 12
secwidth = width - wi


bb = []
i=0
while i < num:                      #creates new list with variables
    ll = d[p[i]]
    bb.insert(i,ll)
    i+=1
print bb
i = 0
while i < num:
    bb.insert(i*2, 12)               #this works on list
    i+=1
print bb



i = 0
while i < num:
    p.insert(i*2, 12)               #this works on list
    i+=1

q = tuple (p)                       #takes list, converts to tuple


reader = csv.reader(open('/prog/test.csv', "rb"))



rownum = 0
for row in reader:
    if rownum == 0:
        print '=' * width
        print format % (q)
        print '-' * width
        print ''

    else:
        D, O, H, L, C, V, A = row [:7]
        o = tuple (bb)
        print format % (o)

    rownum += 1
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to