list comprehension to do os.path.split_all ?
Ian Kelly
ian.g.kelly at gmail.com
Thu Jul 28 16:44:15 EDT 2011
On Thu, Jul 28, 2011 at 2:18 PM, gry <georgeryoung at gmail.com> wrote:
> [python 2.7] I have a (linux) pathname that I'd like to split
> completely into a list of components, e.g.:
> '/home/gyoung/hacks/pathhack/foo.py' --> ['home', 'gyoung',
> 'hacks', 'pathhack', 'foo.py']
>
> os.path.split gives me a tuple of dirname,basename, but there's no
> os.path.split_all function.
>
> I expect I can do this with some simple loop, but I have such faith in
> the wonderfulness of list comprehensions, that it seems like there
> should be a way to use them for an elegant solution of my problem.
> I can't quite work it out. Any brilliant ideas? (or other elegant
> solutions to the problem?)
path = '/home/gyoung/hacks/pathhack/foo.py'
parts = [part for path, part in iter(lambda: os.path.split(path), ('/', ''))]
parts.reverse()
print parts
But that's horrendously ugly. Just write a generator with a while
loop or something.
More information about the Python-list
mailing list