문제

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!

도움이 되었습니까?

해결책

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

>>> import urllib2
>>> urllib2.urlopen("file:///etc/debian_version").read()
'wheezy/sid\n'

다른 팁

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.

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!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top