summaryrefslogtreecommitdiffstats
path: root/Lib/nturl2path.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-06-26 19:47:56 (GMT)
committerGuido van Rossum <guido@python.org>1996-06-26 19:47:56 (GMT)
commit746ea3598a6454528dae76f17b35ac29181b0874 (patch)
tree5fa92a94f182615ff7154d83145ad424a20205c9 /Lib/nturl2path.py
parent2281d35578450e7ee15c94b8667aa59bf406256c (diff)
downloadcpython-746ea3598a6454528dae76f17b35ac29181b0874.zip
cpython-746ea3598a6454528dae76f17b35ac29181b0874.tar.gz
cpython-746ea3598a6454528dae76f17b35ac29181b0874.tar.bz2
url2path for NT
Diffstat (limited to 'Lib/nturl2path.py')
-rw-r--r--Lib/nturl2path.py52
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