On 10/27/07, John <[EMAIL PROTECTED]> wrote: > > Note, i need the ns+1 because the 'source files are not zero indexed. > > On 10/27/07, John <[EMAIL PROTECTED] > wrote: > > > > Here's where I am: > > > > > > def source(filename, vList): > > """ takes a file object and a list of variables as input """ > > import re > > # Read the file > > fid=open(filename,'r') > > lines = fid.readlines() > > fid.close() > > #how many variables > > ns=len(lines)/len(vList) > > #predefine the varibles > > for v in vList: > > exec( 'global %s ; %s = [0]*(ns+1)' % (v, v)) > > > > # Make it python friendly: put all values in 'single quotes' > > cmd = '\n'.join([re.sub( r'^([^=]+)=(.*)$', r"\1='\2'", v) for v in > > lines]) > > exec(cmd) > > for v in vList: > > exec( '%s=%s[1:]' % (v,v)) > > > > source('infile.py',['files','nfiles','nreleases']) > > > > print files > > print nreleases > > print nfiles > > > > > > > > But oddly, my output is: > > > > [0, 'ASP_200603', 'ASP_200604', 'ASP_200605'] > > [0, '248', '240', '248'] > > [0, '3', '3', '3'] > > > > > > > > So, I am not properly getting rid of the list[0], is it something with > > the 'global' nature of the vairables... it looks like it's only changing > > locallly in my source function. > > > > > > -- > 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 >
I think you need to define the variable global again otherwise it will re-assign the object in local space. exec( "global %s ; %s = %s[1:]" % (v,v,v) ) -- Aditya
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor