summaryrefslogtreecommitdiffstats
path: root/Lib/ntpath.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2002-12-12 20:30:20 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2002-12-12 20:30:20 (GMT)
commitde3337913f08266b16842f21a67427d10725ed8f (patch)
treef54488a637762efbde037aac60ebbfb83a217735 /Lib/ntpath.py
parent427a290c9afca605ab8ed799f0072d890318b837 (diff)
downloadcpython-de3337913f08266b16842f21a67427d10725ed8f.zip
cpython-de3337913f08266b16842f21a67427d10725ed8f.tar.gz
cpython-de3337913f08266b16842f21a67427d10725ed8f.tar.bz2
Patch #536661: Improve performance of splitext. Add test_macpath.
Diffstat (limited to 'Lib/ntpath.py')
-rw-r--r--Lib/ntpath.py20
1 files changed, 6 insertions, 14 deletions
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index 0f1dd4d..4e7bb88 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -169,20 +169,12 @@ def splitext(p):
Extension is everything from the last dot to the end.
Return (root, ext), either part may be empty."""
- root, ext = '', ''
- for c in p:
- if c in ['/','\\']:
- root, ext = root + ext + c, ''
- elif c == '.':
- if ext:
- root, ext = root + ext, c
- else:
- ext = c
- elif ext:
- ext = ext + c
- else:
- root = root + c
- return root, ext
+
+ i = p.rfind('.')
+ if i<=max(p.rfind('/'), p.rfind('\\')):
+ return p, ''
+ else:
+ return p[:i], p[i:]
# Return the tail (basename) part of a path.