Parsing a path to components

s0suk3 at gmail.com s0suk3 at gmail.com
Sat Jun 7 05:15:07 EDT 2008


On Jun 7, 3:15 am, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
> On Fri, 06 Jun 2008 23:57:03 -0700, s0suk3 wrote:
> > You can just split the path on `os.sep', which contains the path
> > separator of the platform on which Python is running:
>
> > components = pathString.split(os.sep)
>
> Won't work for platforms with more than one path separator and if a
> separator is repeated.  For example r'\foo\\bar/baz//spam.py' or:
>
> In [140]: os.path.split('foo//bar')
> Out[140]: ('foo', 'bar')
>
> In [141]: 'foo//bar'.split(os.sep)
> Out[141]: ['foo', '', 'bar']
>

But those are invalid paths, aren't they? If you have a jumble of a
path, I think the solution is to call os.path.normpath() before
splitting.

Sebastian



More information about the Python-list mailing list