[Python-Dev] A wart which should have been repaired in 3.0?

Phillip J. Eby pje at telecommunity.com
Wed Dec 31 05:08:04 CET 2008


At 09:30 PM 12/30/2008 -0500, rdmurray at bitdance.com wrote:
>On Tue, 30 Dec 2008 at 17:51, Phillip J. Eby wrote:
>>At 02:32 PM 12/30/2008 -0800, Scott David Daniels wrote:
>>>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'.
>>
>>...because that's the correct answer.
>
>But not the answer that is wanted.
>
>So the challenge now is to write a single expression that will yield
>'/a/b' when passed the above paths list, and also produce '/a/b' when
>passed the following paths list:
>
>     paths = ['/a/b/c', '/a/b/cd']

Change that to [os.path.normpath(p)+'/' for p in paths] and you've 
got yourself a winner.



More information about the Python-Dev mailing list