diff options
author | Guido van Rossum <guido@python.org> | 1996-06-26 19:47:56 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1996-06-26 19:47:56 (GMT) |
commit | 746ea3598a6454528dae76f17b35ac29181b0874 (patch) | |
tree | 5fa92a94f182615ff7154d83145ad424a20205c9 /Lib | |
parent | 2281d35578450e7ee15c94b8667aa59bf406256c (diff) | |
download | cpython-746ea3598a6454528dae76f17b35ac29181b0874.zip cpython-746ea3598a6454528dae76f17b35ac29181b0874.tar.gz cpython-746ea3598a6454528dae76f17b35ac29181b0874.tar.bz2 |
url2path for NT
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/nturl2path.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py new file mode 100644 index 0000000..17f01f5 --- /dev/null +++ b/Lib/nturl2path.py @@ -0,0 +1,52 @@ +# +# nturl2path convert a NT pathname to a file URL and +# vice versa + +def url2pathname(url): + """ Convert a URL to a DOS path... + Currently only works for absolute paths + + ///C|/foo/bar/spam.foo + + becomes + + C:\foo\bar\spam.foo + """ + import string + comp = string.splitfields(url, '|') + if len(comp) != 2 or comp[0][-1] not in string.letters: + error = 'Bad URL: ' + url + raise IOError, error + drive = string.upper(comp[0][-1]) + components = string.splitfields(comp[1], '/') + path = drive + ':' + for comp in components: + if comp: + path = path + '\\' + comp + return path + +def pathname2url(p): + + """ Convert a DOS path name to a file url... + Currently only works for absolute paths + + C:\foo\bar\spam.foo + + becomes + + ///C|/foo/bar/spam.foo + """ + + import string + comp = string.splitfields(p, ':') + if len(comp) != 2 or len(comp[0]) > 1: + error = 'Bad path: ' + p + raise IOError, error + + drive = string.upper(comp[0]) + components = string.splitfields(comp[1], '\\') + path = '///' + drive + '|' + for comp in components: + if comp: + path = path + '/' + comp + return path |