"John" <[EMAIL PROTECTED]> wrote >I have a file sitelocations: > > STN_id[1]=AAA > STNlat[1]=58.800000 > STNlon[1]=17.400000 > STNelv[1]=20 > STN_id[2]=BBB > STNlat[2]=42.450000 > STNlon[2]=25.583333 > STNelv[2]=2925 > > which in shell scripts I can simple 'source'.
> In Python I have to: > sitesFile=file('sitelocations','r') > sites=sitesFile.readlines() > i=0; > for l in sites: > if i==0: > STN_id.append(l.split('=')[1].strip('\n')); i+=1; > elif i==1: > STNlat.append(l.split('=')[1].strip('\n')); i+=1; > elif i==2: > STNlon.append(l.split('=')[1].strip('\n')); i+=1; > else: > STNelv.append(l.split('=')[1].strip('\n')); i=0; > > Is there a better way?? Yes, use the file as an iterator: sitesFile = open('sitelocations','r') for line in sitesFile: STN_id.append(line.split('=')[1]) line = sitesFile.next().strip() STNlat.append(line.split('=')[1]) line = sitesFile.next().strip() STNlon.append(line.split('=')[1]) line = sitesFile.next().strip() STNelv.append(line.split('=')[1]) No need for messy regex or unsafe exec. The dictionary solution is potentially safer still however since it eliminates the line order dependancy. HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor