From: Georg Brandl Date: Thu, 12 Oct 2006 13:08:16 +0000 (+0000) Subject: Bug #1560179: speed up posixpath.(dir|base)name X-Git-Tag: v2.6a1~2567 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=65ad043ea3c331ee41b19746f3a15b19bef2dab1;p=thirdparty%2FPython%2Fcpython.git Bug #1560179: speed up posixpath.(dir|base)name --- diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 07ab4b672c78..15212366057d 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -106,18 +106,23 @@ def splitdrive(p): return '', p -# Return the tail (basename) part of a path. +# Return the tail (basename) part of a path, same as split(path)[1]. def basename(p): """Returns the final component of a pathname""" - return split(p)[1] + i = p.rfind('/') + 1 + return p[i:] -# Return the head (dirname) part of a path. +# Return the head (dirname) part of a path, same as split(path)[0]. def dirname(p): """Returns the directory component of a pathname""" - return split(p)[0] + i = p.rfind('/') + 1 + head = p[:i] + if head and head != '/'*len(head): + head = head.rstrip('/') + return head # Is a path a symbolic link?