[Tutor] Parsing text file?

Karl Pflästerer sigurd at 12move.de
Thu Apr 15 15:31:49 EDT 2004


On 15 Apr 2004, Kooser, Ara S <- askoose at sandia.gov wrote:

> file. I now need to remove the first column of data and then convert the
> second. Is parsing right for this? Are there good websites for me to read or
> books on this? I am trying to write as much of my own code as possible and
> ask questions. ;)  Thanks. This is on Python 2.3.3. 

> My data files looks like this:
> 16
> 1  1  0.00000  0.68337  0.25020
> 2  2  0.00000  0.29020  0.25020
> 3  3  0.00000  0.08104  0.25020
> 4  4  0.00000  0.00000  0.25020
> Etc...

Is `16' in the first line part of your file?  Your task could be solved
pretty straightly: read each line of the file, split it on
whitespace, convert the second column and write the data in a new file.
(no need for a lot of books here).

If you used a generator function you could write it like that:

********************************************************************
def proc_file (f, cfun=lambda n: n):
    for line in f:
        line = line.split()[1:]
        line[0] = cfun(line[0])
        yield ' '.join(line) + '\n'

inf = file('INFILE')
out = file('OUTFILE', 'w')
out.writelines(proc_file(inf, convfun))
out.close()
inf.close()
********************************************************************

`convfun' must be the function to convert your data (if you don't use a
second argument the identity function gets used).

If `16' is part of your data you must treat the first line specific.


   Karl
-- 
Please do *not* send copies of replies to me.
I read the list




More information about the Tutor mailing list