Rewrite normcase() using string.translate...

This commit is contained in:
Guido van Rossum 1997-08-12 14:46:58 +00:00
parent efa683726f
commit e2ad88c202
1 changed files with 6 additions and 14 deletions

View File

@ -5,23 +5,15 @@ import stat
import string
# Normalize the case of a pathname.
# On MS-DOS it maps the pathname to lowercase, turns slashes into
# backslashes.
# Other normalizations (such as optimizing '../' away) are not allowed
# Normalize the case of a pathname and map slashes to backslashes.
# Other normalizations (such as optimizing '../' away) are not done
# (this is done by normpath).
# Previously, this version mapped invalid consecutive characters to a
# single '_', but this has been removed. This functionality should
# possibly be added as a new function.
_normtable = string.maketrans(string.uppercase + "\\/",
string.lowercase + os.sep * 2)
def normcase(s):
res, s = splitdrive(s)
for c in s:
if c in '/\\':
res = res + os.sep
else:
res = res + c
return string.lower(res)
return string.translate(s, _normtable)
# Return wheter a path is absolute.