]> granicus.if.org Git - python/commitdiff
url2path for NT
authorGuido van Rossum <guido@python.org>
Wed, 26 Jun 1996 19:47:56 +0000 (19:47 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 26 Jun 1996 19:47:56 +0000 (19:47 +0000)
Lib/nturl2path.py [new file with mode: 0644]

diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py
new file mode 100644 (file)
index 0000000..17f01f5
--- /dev/null
@@ -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