read lines

Chris cwitts at gmail.com
Tue Dec 4 07:48:21 EST 2007


On Dec 4, 2:14 pm, Horacius ReX <horacius.... at gmail.com> wrote:
> Hi, I have a text file like this;
>
> 1 -33.453579
> 2 -148.487125
> 3 -195.067172
> 4 -115.958374
> 5 -100.597841
> 6 -121.566441
> 7 -121.025381
> 8 -132.103507
> 9 -108.939327
> 10 -97.046703
> 11 -52.866534
> 12 -48.432623
> 13 -112.790419
> 14 -98.516975
> 15 -98.724436
>
> So I want to write a program in python that reads each line and
> detects which numbers of the second column are the maximum and the
> minimum.
>
> I tried with;
>
> import os, sys,re,string
>
> # first parameter is the name of the data file
> name1 = sys.argv[1]
> infile1 = open(name1,"r")
>
> # 1. get minimum and maximum
>
> minimum=0
> maximum=0
>
> print " minimum = ",minimum
> print " maximum = ",maximum
>
> while 1:
>          line = infile1.readline()
>          ll = re.split("\s+",string.strip(line))
>          print ll[0],ll[1]
>          a=ll[0]
>          b=ll[1]
>          print a,b
>          if(b<minimum):
>                         minimum=b
>                         print " minimum= ",minimum
>          if(b>maximum):
>                         maximum=b
>                         print " maximum= ",maximum
>
>          print minimum, maximum
>
> But it does not work and I get errors like;
>
> Traceback (most recent call last):
>   File "translate_to_intervals.py", line 20, in <module>
>     print ll[0],ll[1]
> IndexError: list index out of range
>
> Could anybody help me ?
>
> Thanks

You're not guaranteed to have that 2 or even 1 element after
splitting.  If the line is empty or has 1 space you need to handle
it.  Also is there really a need for regex for a simple string split ?

import sys

infile = open(sys.argv[1], 'r')
min, max = 0, 0

for each_line in infile.readlines():
    if each_line.strip():
        tmp = each_line.strip().split()
        try:
            b = tmp[1]
        except IndexError:
            continue
        if b < min: min = b
        if b > max: max = b



More information about the Python-list mailing list