Thanks! This is helpful.. I like the RE approach as it's conceivable to
write a function...

On 10/27/07, Aditya Lal <[EMAIL PROTECTED]> wrote:
>
> You can source the file in python provided that you make it python
> friendly:-
>
> STN_id[1]='AAA' instead of STN_id[1]=AAA
> ...
>
>
> -----------
> import re
> # Read the file
> fd = open('sitelocations')
> lines = fd.readlines()
> fd.close()
>
>
> # Make it python friendly: put all values in 'single quotes'
> cmd = '\n'.join([re.sub( r'^([^=]+)=(.*)$', r"\1='\2'", v) for v in
> lines])
>
>
> # Create variables as list of appropriate size with default values
> (assuming 0)
> max = 5
> STN_id, STNlat, STNlon, STNelv = [0]*max, [0]*max, [0]*max, [0]*max
>
>
> # Execute the command and all your variables are populated ...
> exec(cmd)
>
>
> -------------------
> Not sure if this is a better way :) But atleast it will make the file
> sitelocations order invariant - implies you can interchange the lines
> without breaking the logic.
>
>
> Caveat - list in python starts at 0 index so STN_id[1] is not the first
> element but the second element. But you can filter unwanted items from the
> list if you want as in -
> [ x for x in STN_id if x != 0 ]
>
>
> HTH
> Aditya
>
>  On 10/27/07, 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??
> >
> > Thanks!
> >
> >
> >
> >
> > --
> > Configuration
> > ``````````````````````````
> > Plone 2.5.3-final,
> > CMF-1.6.4,
> > Zope (Zope 2.9.7-final, python 2.4.4, linux2),
> > Five 1.4.1,
> > Python 2.4.4 (#1, Jul 3 2007, 22:58:17) [GCC 4.1.1 20070105 (Red Hat
> > 4.1.1-51)],
> > PIL 1.1.6
> >
> > _______________________________________________
> > Tutor maillist  -  Tutor@python.org
> > http://mail.python.org/mailman<http://mail.python.org/mailman/listinfo/tutor>
> > /listinfo/tutor <http://mail.python.org/mailman/listinfo/tutor>
> >
> >
>
>
> --
> Aditya
>



-- 
Configuration
``````````````````````````
Plone 2.5.3-final,
CMF-1.6.4,
Zope (Zope 2.9.7-final, python 2.4.4, linux2),
Five 1.4.1,
Python 2.4.4 (#1, Jul 3 2007, 22:58:17) [GCC 4.1.1 20070105 (Red Hat
4.1.1-51)],
PIL 1.1.6
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to