The most obvious case where it wouldn't work would be for a UNC path name. Using the string split method gives two empty strings:


os.path.normpath(r'\\machine\share').split(os.path.sep)

['', '', 'machine', 'share']



whereas the splitpath function I proposed gives you:


splitpath(r'\\machine\share')

['\\\\', 'machine', 'share']

So to find out the type of path (relative, absolute, unc), you only have to consider the first element with my function but you have to look at the first two elements if you just naively split the string.
Thanks for the explanation. I forgot that you could do thinks like that
on windows.


Also a relative windows path with a drive letter doesn't get fully split:


os.path.normpath(r'c:dir\file').split(os.path.sep)

['c:dir', 'file']

splitpath(r'c:dir\file')

['c:', 'dir', 'file']
Again, I forgot it.

If you really are worried about speed (and are sure you aren't optimising prematurely), then you could combine some special case processing near the start of the string with a simple split of the remainder.
No, I'm not worried about speed. Actually, the original post wasn't
mine. I was just curious about your answer.

Regards,
Josef
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to