Почему бы просто не использовать регулярные выражения?
>>> import re
>>> paths = ['/abs/path/foo',
... 'rel/path',
... 'just-a-file']
>>>
>>> [re.match(r'\/?([^\/]+)', p).groups()[0] for p in paths]
['abs', 'rel', 'just-a-file']
и для Windows:
>>> paths = [r'\abs\path\foo',
... r'rel\path',
... r'just-a-file',
... r'C:\abs\path\foo',
... r'C:rel\path',
... r'C:just-a-file']
>>>
>>> [re.match(r'(?:[A-Za-z]:)?\\?([^\\]+)', p).groups()[0] for p in paths]
['abs', 'rel', 'just-a-file', 'abs', 'rel', 'just-a-file']