web-dev-qa-db-ja.com

ローカルファイルを開くとurllibで機能するが、urllib2では機能しない

Urllib2を使用してローカルファイルを開こうとしています。どうすればこれを行うことができますか? urllibで次の行を試すと:

resp = urllib.urlopen(url)

それは正しく動作しますが、私がそれを切り替えると:

resp = urllib2.urlopen(url)

私は得る:

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

そのファイルは間違いなく終了します。

ありがとう!

25
Jason Brooks

ただ"file://"パスの前

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

Urllib.urlopenメソッドの場合:URLパラメーターにスキーム識別子がない場合、ローカルファイルを開きます。しかし、urllib2はこのようには動作しません。

そのため、urllib2メソッドでは処理できません。

Urlパラメーターのメソッド呼び出しの両方に 'file://'スキーマ識別子を含めることは常に適切です。

1
Wubao Li

私は同じ問題を抱えていましたが、実際に、ページのソースをダウンロードして、chromeで開くと、ブラウザのURLバーに正確なローカルパスが表示されます。幸運を!

0
oba2311