table from csv file

marlowe marlowequart at hotmail.com
Fri Jan 8 18:59:15 CET 2010


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



More information about the Python-list mailing list