[Tutor] CSV question for getting data from a text file

Alan Gauld alan.gauld at btinternet.com
Mon Oct 19 03:15:04 CEST 2009


"Ara Kooser" <ghashsnaga at gmail.com> wrote

> testreader = csv.reader(open(filein))
> for row in testreader:
>    print(row)
>
> The output looks like this:
> []
> ['----------------------------Distribution of
> species----------------------------']
> []
> ['\t                                           Log       Log         Log 
> ']
> ['\tSpecies            Molality    Activity  Molality  Activity 
> Gamma']
> []
> ['\tOH-               4.121e-06 
> .489e-06    -5.385    -5.457    -0.072']
>
> How do ignore everything before and after the Distribution of species

You don't tell us how the "after species" is defined but the before bit
can be done with a flag that gets set when you hit the required line:

active = False
for row in testreader:
     if not actve and "Distribution" in row: active = True
     elif <Whatever detects the end os species>: active = False
     else:
           process species stuff here

> then pull out the species and activties so I can perform calculations on
> them? Is csv the best for that or am I better off using split and dumping
> into a dictionary? I think I need to specify white space as the 
> delimiter,
> is that correct?

You would need to specify whitespace. But in that case I suspect split
will work just as well. Whether you feed into a dictionary or just index
the list produced by split() depends on exactly what processing you
need to do to the results.

HTH

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/ 




More information about the Tutor mailing list