[Tutor] turn a path into nested list

ingo ingoogni at gmail.com
Fri Jan 14 11:26:34 CET 2011


On Fri, Jan 14, 2011 at 1:21 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:

>>>> for t in os.walk('Root'):
>
> ...    print t
> ...
> And the result is:('Root', ['D1', 'D2', 'D3'], ['FA.txt', 'FB.txt'])
> ('Root/D1', ['D1-1'], ['FC.txt'])

As I only need the first result presented I didn't favor os.walk, yet
tried it anyway. Below both versions:

1.
aliaspath = mk_alias(path)
directories = mk_pathlist(aliaspath)
files = []

content = os.listdir(path)
content.sort()
for item in content:
    fullpath = os.path.join(path, item)
    if os.path.isdir(fullpath):
        directories.append((item, mk_aliasURL(fullpath)))
    else:
        files.append((item, mk_aliasURL(fullpath)))

2.
content = list(os.walk(path).next())
content[0] = mk_alias(content[0])
directories = mk_pathlist(content[0])
directories.extend([(item, mkURL(os.path.join(content[0], item))) for
item in content[1]])
files = [(item, mkURL(os.path.join(content[0], item))) for item in content[2]]


And both with the same output:

 Path
c:\Python25\Lib\site-packages\pygame\examples\macosx\aliens_app_example

 AliasPath
Audio\site-packages\pygame\examples\macosx\aliens_app_example

 Dirs
[('Audio', 'Audio'),
('site-packages', 'Audio/site-packages'),
('pygame', 'Audio/site-packages/pygame'),
('examples', 'Audio/site-packages/pygame/examples'),
('macosx', 'Audio/site-packages/pygame/examples/macosx'),
('aliens_app_example',
'Audio/site-packages/pygame/examples/macosx/aliens_app_example'),
('English.lproj',
'Audio/site-packages/pygame/examples/macosx/aliens_app_example/English.lproj')]

 Files
[('aliens.py', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/aliens.py'),
('aliens.pyc', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/aliens.pyc'),
('aliens.pyo', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/aliens.pyo'),
('README.txt', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/README.txt'),
('setup.py', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/setup.py'),
('setup.pyc', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/setup.pyc'),
('setup.pyo', 'Audio/site-packages/pygame/examples/macosx/aliens_app_example/setup.pyo')]

ingo


More information about the Tutor mailing list