Figured there was some super fast efficient way of doing it. Only buy
I get is if there is a non-directory in the hierarchy...which happens
all the time for me, damn .DS files...

On Jun 22, 1:21 pm, Chris G <[email protected]> wrote:
> recursion seems a little easier:
>
> root = '/tmp/base'
> import os
>
> def fill(dir):
>     subs = os.listdir(dir)
>     return dict(zip(subs, (fill(os.path.join(dir,s)) for s in subs)))
> print {root : fill(root)}
> # {'/tmp/base': {'child_1': {'sub_1': {}}, 'child_2': {'sub_2': {}}}}
>
> On Tue, Jun 22, 2010 at 3:39 PM, shawnpatapoff <[email protected]> 
> wrote:
> > Well, I had some ideas what I wanted to do, but in the end went with
> > this:
>
> >    def populateDict(self, pth):
> >        lastDir = None
> >        vStr    = None
> >        for root, dirs, files in os.walk(pth):
> >            r= root.split('geo_cache')[1][1:]
> >            if len(r) > 0:
> >                keys  = r.split('/')
> >                kStr  = 'self.cacheDict'
> >                for k in keys:
> >                    kStr += '["' + k + '"]'
> >                kStr+='={}'
> >                exec(kStr)
>
> > On Jun 22, 12:14 pm, Chris G <[email protected]> wrote:
> >> So are you stuck on the correctness or the efficiency of what you have?
>
> >> On Tue, Jun 22, 2010 at 1:39 PM, shawnpatapoff <[email protected]> 
> >> wrote:
> >> > Hey Chris,
>
> >> > I looked at os.walk and it does work nice. My issue is actually
> >> > capturing the data into a nested dictionary correctly.
>
> >> > On Jun 22, 10:37 am, Chris G <[email protected]> wrote:
> >> >> If it's an existing directory structure, you could just use os.walk.
>
> >> >> On Tue, Jun 22, 2010 at 1:08 PM, shawnpatapoff 
> >> >> <[email protected]> wrote:
> >> >> > Hey Everyone,
>
> >> >> > I've been trying a decent solution for getting a dictionary filled
> >> >> > with a specific directory structure.
>
> >> >> > base-
> >> >> >        - child_1-
> >> >> >        |              -sub_1
> >> >> >        |
> >> >> >        - child_2-
> >> >> >                     - sub_2
>
> >> >> > I would look like:
> >> >> > myDict{base:{child:{sub_1}},{child_2:{sub_2}}}
>
> >> >> > Been messing with various methods, non which seem to be that
> >> >> > efficient. Anyone have any ideas that they would want to share?
>
> >> >> > -s
>
> >> >> > --
> >> >> >http://groups.google.com/group/python_inside_maya
>
> >> > --
> >> >http://groups.google.com/group/python_inside_maya
>
> > --
> >http://groups.google.com/group/python_inside_maya
>
>

-- 
http://groups.google.com/group/python_inside_maya

Reply via email to