os.path.vnormpath
Ben Allfree
benles at bldigital.com
Sat Nov 8 19:57:53 EST 2003
Written to normalize web server path names based on a virtual root. I
propose that something equivalent to this be added to os.path
-------------------------------------
import os.path
import copy
def vnormpath(root,path):
"""
Normalize a path based on a virtual root.
"""
r = copy.deepcopy(root)
p = copy.deepcopy(path)
if os.path.isabs(path):
return root + path
while os.path.commonprefix([root, os.path.normpath(os.path.join(r,p))])
<> root:
r = os.path.join(r,"junk")
return os.path.normpath(os.path.join(r,p))
if __name__ == "__main__":
print vnormpath("C:\\foo\\baz",
"..\\..\\..\\..\\foo\\baz\\..\\..\\..\\frob\\glop")
More information about the Python-list
mailing list