[Python-Dev] A wart which should have been repaired in 3.0?
Scott David Daniels
Scott.Daniels at Acm.Org
Tue Dec 30 23:32:02 CET 2008
Paul Moore wrote:
> 2008/12/30 Phillip J. Eby <pje at telecommunity.com>:
>> You know, all this path separator and list complication isn't really
>> necessary, when you can just take the os.path.dirname() of the return from
>> commonprefix()....
>
> Actually, consider: ...
>>>> os.path.commonprefix(["foo\\bar\\baz", "foo/bar/boink"])
> 'foo'
>
> ... I'm not sure how to deal with this, except by recommending that all
> paths passed to os.path.commonprefix should at the very least be
> normalised via os.path.normpath first - which starts to get clumsy
> fast. So the "recommended" usage to get the common directory is
>
> paths = [...]
> common = os.path.dirname(os.path.commonprefix([
> os.path.normpath(p) for p in paths]))
More trouble with the "just take the dirname":
paths = ['/a/b/c', '/a/b/d', '/a/b']
os.path.dirname(os.path.commonprefix([
os.path.normpath(p) for p in paths]))
give '/a', not '/a/b'.
--Scott David Daniels
Scott.Daniels at Acm.Org
More information about the Python-Dev
mailing list