Extracting matrix from a text file
alex23
wuwei23 at gmail.com
Fri Aug 7 12:39:15 EDT 2009
On Aug 8, 2:19 am, bbarb... at inescporto.pt wrote:
> I am new in python, and I am running it on Mac with Smultron editor. I
> need to read a textfile that includes numbers (in a matrix form),
> indexes, and strings, like this:
>
> Marsyas-kea distance matrix for MIREX 2007 Audio Similarity Exchange
> Q/R 1 2 3 4 5
> 1 0 4.54592 4.36685 5.29463 3.85728
> 2 4.54592 0 3.97667 5.02151 4.64284
> 3 4.36685 3.97667 0 4.98743 4.83683
> 4 5.29463 5.02151 4.98743 0 6.04393
> 5 3.85728 4.64284 4.83683 6.04393 0
>
> So I just want to keep the matrix in the "middle" for math computations.
>
> 0 4.54592 4.36685 5.29463 3.85728
> 4.54592 0 3.97667 5.02151 4.64284
> 4.36685 3.97667 0 4.98743 4.83683
> 5.29463 5.02151 4.98743 0 6.04393
> 3.85728 4.64284 4.83683 6.04393 0
>
> I've seen and tried a lot of ways, like split or isinstance.. but
> never get the wanted result.... does anyone have an idea, or hint?
> Thank you once more for your help!
isinstance? Are you just randomly trying functions hoping they'll
work? :)
Untested code follows:
with open(<textfile>,'r') as textfile:
header = textfile.next() # skip the header
col_0_size = 8 # cos it does
for line in textfile:
newline = line[col_0_size:] # strip off the index column
columns = newline.split(' ') # will give you a tuple of
strings
one, two, three, four, five = map(float, columns) # turns the
strings into floats
# do whatever you want to those values here
This is fairly standard text handling with Python, if you haven't
already you should really work through the Python tutorial[1],
especially the section on strings [2], and if you have, perhaps David
Mertz's 'Text Processing in Python'[3] may be of use.
1: http://docs.python.org/tutorial/
2: http://docs.python.org/tutorial/introduction.html#strings
3: http://gnosis.cx/TPiP/
More information about the Python-list
mailing list