On 5 Apr 2007 04:58:22 -0700, Sergei Minayev <[EMAIL PROTECTED]> wrote: > Hi All! > Can you please help me with the following problem: > I need to store a copy of local folders structure in MySQL database. > I have chosen the following table structure for that: > ------------------------------------------------ > | id | id_uplink | folder_name | > ------------------------------------------------ > id - unique property of each folder. > id_uplink - id of upper level folder is stored here (for example: if > id of c:\test is 1, than id_uplink of c:\test\python equals 1). > folder_name - name of folder. > You see, i dont want to store the path list, but the structure. > > The question is how to implement that in Python. I easily made it in C+ > + using recursion. But, unfortunately, I can't figure it out how to > make it in python using os.walk function (or can you recommend smth. > else???). :( Though it looks quite simple, but anyway. > > Best Regards,
os.walk should be more than sufficient in your case. You can navigate the directory structure and at each 'new' directory find its parents id and assign a new-id to this 'new' directory. An Example: import os root='/my/root/directory' id =0 tree={root:(-1, id)} id+=1 for path, dirs, files in os.walk(root): for dir in dirs: if not tree.has_key(path+'/'+dir): tree[path+'/'+dir]=(tree[path][1], id) id+=1 It stores ids as a tuple (parent_id, id) in a dictionary(tree). Should be straight forward to modify to your requirements. Also you can make the following code more efficient by saving/caching some lookups ! Cheers, -- ---- Amit Khemka -- onyomo.com Home Page: www.cse.iitd.ernet.in/~csd00377 Endless the world's turn, endless the sun's Spinning, Endless the quest; I turn again, back to my own beginning, And here, find rest. -- http://mail.python.org/mailman/listinfo/python-list