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(r oot)
p = copy.deepcopy(p ath)
if os.path.isabs(p ath):
return root + path
while os.path.commonp refix([root, os.path.normpat h(os.path.join( r,p))])
<> root:
r = os.path.join(r, "junk")
return os.path.normpat h(os.path.join( r,p))
if __name__ == "__main__":
print vnormpath("C:\\ foo\\baz",
"..\\..\\..\\.. \\foo\\baz\\..\ \..\\..\\frob\\ glop")
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(r oot)
p = copy.deepcopy(p ath)
if os.path.isabs(p ath):
return root + path
while os.path.commonp refix([root, os.path.normpat h(os.path.join( r,p))])
<> root:
r = os.path.join(r, "junk")
return os.path.normpat h(os.path.join( r,p))
if __name__ == "__main__":
print vnormpath("C:\\ foo\\baz",
"..\\..\\..\\.. \\foo\\baz\\..\ \..\\..\\frob\\ glop")
Comment