[Zope-dev] Recursive folders from Python, Thanks to all

Jason Spisak 444@hiretechs.com
Tue, 17 Oct 2000 04:45:06 GMT


Kapil and Others,

Thanks for the enlightening alternatives.  That's one thing about this list
and Python, there's more than one way to skin an object.

All my best,

> not an answer to the original question... but an alternative approach
> 
> 
> from OFS import Folder
> 
> def create_folders(self, number):
> 	''' create a set of recursive folders with depth equal to number'''
> 
> 	parent = self
> 	for index in xrange(number):
> 		folder = Folder()
> 		folder.id = str(number)
> 		parent._setObject(folder, str(number))
> 		parent = folder
> 
> 
> 
> 
> 
> Andy McKay wrote:
> > 
> > Try using getattr to get the object... heres a python script to do it a
> > little more cleanly:
> > 
> > import string
> > 
> > def create_folders(self):
> >  path = '/a/b/c'      # create a folder for each part of the string, nested.
> > 
> >  for p in string.split(path, '/'):
> >   if p != '':
> >    self = create_folder(self, p)
> > 
> >  return 'Done'
> > 
> > def create_folder(folder, id):
> >  try: folder.manage_addFolder(id)
> >  except: pass
> > 
> >  new_folder = getattr(folder, id)
> >  return new_folder
> > 
> > ----- Original Message -----
> > From: "Jason Spisak" <444@hiretechs.com>
> > To: <zope-dev@zope.org>
> > Sent: Monday, October 16, 2000 10:46 AM
> > Subject: [Zope-dev] Recursive folders from Python
> > 
> > > Zopists,
> > >
> > > Yesterday I was trying to create recursive folders from DTML.
> > > I'd like to do the same from Python.
> > > Does anyonw know why this code won't create a folder within a folder.
> > > It's tells me the id is already in use, so that means it's not
> > > descending into the newly created folder to make another folder.
> > >
> > > def create(self):
> > >     for digit in range(0, 10):
> > >         folder    = self.manage_addFolder(str(digit), str(digit))
> > >         subfolder = self.folder.manage_addFolder(str(digit), str(digit))
> > >


Jason Spisak
444@hiretechs.com