reading floats from file

Edward S. Vinyard Edward.S.Vinyard at jpl.nasa.gov
Wed Sep 5 00:11:40 CEST 2001


Try this...

import string

def fileToMatrix(file_name):
    file = open(file_name, 'r')
    lineToRow = lambda line: map(float, string.split(line))
    return map(lineToRow, file.readlines())

Cheers,
Ed

John Hunter wrote:
> 
> I have a file of ascii data arranged as a matrix of floats, eg
> 
> 0.3125 0.9418 1.2843 0.924516 0.92855
> 0.3125 0.6593 1.2843 0.900514 0.900914
> 0.1667 0.9757 1.5611 0.893318 0.893699
> 
> I want to read this data and process it a line at a time
> 
> This works:
> 
> fh = open(dataDir + 'freqs_and_amps.dat')
> for line in fh.readlines():
>     line = re.sub('^[ ]+', '', line)
>     x = map(float, re.split('[\r\n\t ]+', line[0:len(line)-1]))
> 
> 
> But I suspect there is a better way.
> 
> Suggestions?
> 
> Thanks,
> John Hunter
> 




More information about the Python-list mailing list