On Sep 11, 8:04 pm, Arnaud Delobelle <[EMAIL PROTECTED]> wrote: > On Sep 11, 5:40 pm, "Giampaolo Rodola'" <[EMAIL PROTECTED]> wrote: > > > > > Hi, > > I'm trying to implement a function which returns whether a path is a > > subpath of another one (e.g. /a/b/c is a subpath of /a/b). > > I wrote this function which apparently seems to work fine: > > > import os > > > def issubpath(path1, path2): > > """Return True if path1 is a sub path of path2.""" > > if path1 == path2: > > return False > > x1 = path1.split(os.sep) > > x2 = path2.split(os.sep) > > return x1[:len(x2)] == x2 > > > ...but if I use "issubpath('C:\\dir', 'C:\\')" it returns False. > > A little help would be appreciated. > > > Thanks in advance. > > That's because: > > >>> 'C:\\dir'.split('\\') > ['C:', 'dir'] > >>> 'C:\\'.split('\\') > > ['C:', ''] > > So you could write instead something like > > x1 = path1.rstrip(os.sep).split(os.sep) > x2 = path2.rstrip(os.sep).split(os.sep) > > in your function > > HTH > > -- > Arnaud
Thanks, it seems to work just fine. --- Giampaolo http://code.google.com/p/pyftpdlib/ -- http://mail.python.org/mailman/listinfo/python-list