mirror of
https://github.com/exaloop/codon.git
synced 2025-06-03 15:03:52 +08:00
19 lines
608 B
Python
19 lines
608 B
Python
|
def splitext(p: str) -> Tuple[str, str]:
|
||
|
"""
|
||
|
Split the extension from a pathname.
|
||
|
Extension is everything from the last dot to the end, ignoring
|
||
|
leading dots. Returns "(root, ext)"; ext may be empty."""
|
||
|
sep = '/'
|
||
|
extsep = '.'
|
||
|
|
||
|
sepIndex = p.rfind(sep)
|
||
|
dotIndex = p.rfind(extsep)
|
||
|
if dotIndex > sepIndex:
|
||
|
# skip all leading dots
|
||
|
filenameIndex = sepIndex + 1
|
||
|
while filenameIndex < dotIndex:
|
||
|
if p[filenameIndex:filenameIndex+1] != extsep:
|
||
|
return p[:dotIndex], p[dotIndex:]
|
||
|
filenameIndex += 1
|
||
|
return p, p[:0]
|