[Python-checkins] r52316 - python/trunk/Lib/posixpath.py

georg.brandl python-checkins at python.org
Thu Oct 12 15:08:17 CEST 2006


Author: georg.brandl
Date: Thu Oct 12 15:08:16 2006
New Revision: 52316
Modified:
 python/trunk/Lib/posixpath.py
Log:
Bug #1560179: speed up posixpath.(dir|base)name
Modified: python/trunk/Lib/posixpath.py
==============================================================================
--- python/trunk/Lib/posixpath.py	(original)
+++ python/trunk/Lib/posixpath.py	Thu Oct 12 15:08:16 2006
@@ -106,18 +106,23 @@
 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?


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /