diff options
| author | Georg Brandl <georg@python.org> | 2006-10-12 13:08:16 (GMT) | 
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2006-10-12 13:08:16 (GMT) | 
| commit | 65ad043ea3c331ee41b19746f3a15b19bef2dab1 (patch) | |
| tree | f930e91527bfc26edd8f272f883ddd616dccef13 /Lib/posixpath.py | |
| parent | 8134d06e08a009c3bae040317dab6dd541241c7e (diff) | |
| download | cpython-65ad043ea3c331ee41b19746f3a15b19bef2dab1.zip cpython-65ad043ea3c331ee41b19746f3a15b19bef2dab1.tar.gz cpython-65ad043ea3c331ee41b19746f3a15b19bef2dab1.tar.bz2  | |
Bug #1560179: speed up posixpath.(dir|base)name
Diffstat (limited to 'Lib/posixpath.py')
| -rw-r--r-- | Lib/posixpath.py | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 07ab4b6..1521236 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?  | 
