> Hi, I have a text file like this; > > 1 -33.453579 > 2 -148.487125 > .... > > 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
Your regex is not working correctly I guess, I don't even know why you are using a regex, something like this would work just fine: import sys nums = [float(line.split(' -')[1]) for line in open(sys.argv[1])] print 'min=', min(nums), 'max=', max(nums) -- http://mail.python.org/mailman/listinfo/python-list