Extracting matrix from a text file

MRAB python at mrabarnett.plus.com
Fri Aug 7 13:29:23 EDT 2009


alex23 wrote:
> 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
[snip]
Or:
         columns = line.split(' ')[1 : ]



More information about the Python-list mailing list