Eric Snow <[email protected]> added the comment:
You can already get the better prefix using os.path, albeit less efficiently.
Here's an example:
def commondirname(paths):
subpath = os.path.commonprefix(paths)
for path in paths:
if path == subpath:
return subpath
else:
return os.path.join(os.path.split(subpath)[0], "")
However, would it be better to implicitly normalize paths first rather than
doing a character-by-character comparison? Here is an unoptimized
demonstration of what I mean:
def commondirname(paths):
result = ""
for path in paths:
path = os.path.normcase(os.path.abspath(path))
if not result:
result = path
else:
while not path.startswith(result + os.path.sep):
result, _ = os.path.split(result)
if os.path.splitdrive(result)[1] == os.path.sep:
return result
return result
----------
nosy: +ericsnow
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue10395>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com