]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Bug #1560179: speed up posixpath.(dir|base)name
authorGeorg Brandl <georg@python.org>
Thu, 12 Oct 2006 13:08:16 +0000 (13:08 +0000)
committerGeorg Brandl <georg@python.org>
Thu, 12 Oct 2006 13:08:16 +0000 (13:08 +0000)
Lib/posixpath.py

index 07ab4b672c783cec1b3843085f781dc6dd7c9bef..15212366057da308114bcf2e9d1fbf73478ca2ad 100644 (file)
@@ -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?