Opening Local File Works with urllib but not with urllib2

Question:

I’m trying to open a local file using urllib2. How can I go about doing this? When I try the following line with urllib:

resp = urllib.urlopen(url)

it works correctly, but when I switch it to:

resp = urllib2.urlopen(url)

I get:

ValueError: unknown url type: /path/to/file

where that file definitely does exit.

Thanks!

Asked By: Jason Brooks

||

Answers:

Just put "file://" in front of the path

>>> import urllib2
>>> urllib2.urlopen("file:///etc/debian_version").read()
'wheezy/sidn'
Answered By: John La Rooy

In urllib.urlopen method: If the URL parameter does not have a scheme identifier, it will opens a local file. but the urllib2 doesn’t behave like this.

So, the urllib2 method can’t process it.

It’s always be good to include the ‘file://’ schema identifier in both of the method call for the url parameter.

Answered By: Wubao Li

I had the same issue and actually, I just realized that if you download the source of the page, and then open it on chrome your browser will show you the exact local path on the url bar. Good luck!

Answered By: oba2311
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.