pythonic parsing of URL
Steven D'Aprano
steve at REMOVE.THIS.cybersource.com.au
Sat Jul 28 01:04:09 EDT 2007
On Sat, 28 Jul 2007 03:10:32 +0000, GreenH wrote:
> I get some string as below from a library method (qt3
> QDropEvent.data()) I use.
> file:///C:/Documents%20and%20Settings/Username/My%20Documents/45-61-Abc%20fold-%20den.vru
>
> I need file path on my system, for the above example:
> C:/Documents and Settings/Username/My Documents/45-61-Abc fold-
> den.vru
>
> I am doing the below, it doesn't look pythonic,
> can someone suggest any elegant solution, which is not too cryptic to
> understand? yep, I do care about readability of the code to average
> python user :)
Try this:
import urlparse, sys
fileURLname = ("file:///C:/Documents%20and%20Settings/Username/"
"My%20Documents/45-61-Abc%20fold-%20den.vru")
pathname = urlparse.urlparse(fileURLname)[2]
if sys.platform == "win32":
import nturl2path
clean = nturl2path.url2pathname(pathname)
else:
import urllib
clean = urllib.unquote(pathname)
print clean
> --------------------
> tmpTuple = urlparse.urlparse(fileURLname)
>
> tmpString = tmpTuple[2].strip('/\\')
>
> fileName = urllib.unquote(tmpString)
>
> #For some reason the string contained in 'fileName' has some
> unprintable trailing characters, Any ideas on that?
It works for me: No trailing characters at all, printable or otherwise.
>>> len(fileName.split('.vru', 1)[1])
0
--
Steven.
More information about the Python-list
mailing list