Bug in urllib?
Christoph Zwerschke
cito at online.de
Sat Oct 14 23:00:44 EDT 2006
goyatlah wrote:
> urllib.url2pathname("http://127.0.0.1:1030/js.cgi?pca&r=12181")
> gives IOError : Bad Url, only coz of the :1030 which should be
> accurate portnumber. Is it something I did wrong, or a bug. And what
> to do to avoid this (except rewriting url2pathname)?
>>> help(urllib.url2pathname)
url2pathname(url)
OS-specific conversion from a relative URL of the 'file' scheme
to a file system path; not recommended for general use.
So first, you must use a URL of the 'file' scheme, not of the 'http'
scheme. This is something like:
'file://localhost/C|/srv/cgi.bin/js.cgi' or 'file:///C|/srv/cgi.bin/js.cgi
Second, it must be a "relative URL" which is a bit mistakable here. What
is actually meant is that you must not prepend it with 'file:'.
So you have to pass
'//localhost/C|/srv/cgi.bin/js.cgi' or
'///C|/srv/cgi.bin/js.cgi'
On Windows, this will give you:
>>> urllib.url2pathname('//localhost/C|/srv/cgi.bin/js.cgi')
C:\srv\cgi.bin\js.cgi
The docs at http://docs.python.org/lib/module-urllib.html say basically
the same, you need to pass the *path component* of an URL, not the
complete URL.
-- Christoph
More information about the Python-list
mailing list