web-dev-qa-db-fra.com

Ouverture d'un fichier local Fonctionne avec urllib mais pas avec urllib2

J'essaye d'ouvrir un fichier local en utilisant urllib2. Comment puis-je m'y prendre? Quand j'essaye la ligne suivante avec urllib:

resp = urllib.urlopen(url)

cela fonctionne correctement, mais quand je le change en:

resp = urllib2.urlopen(url)

Je reçois:

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

où ce fichier se termine définitivement.

Merci!

23
Jason Brooks

Il suffit de mettre "file://" devant le chemin

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

Dans la méthode urllib.urlopen: Si le paramètre d'URL n'a pas d'identificateur de schéma, il ouvre un fichier local. mais l'urllib2 ne se comporte pas comme ça.

Donc, la méthode urllib2 ne peut pas le traiter.

Il est toujours bon d'inclure l'identifiant de schéma 'file: //' dans l'appel de méthode pour le paramètre url.

1
Wubao Li

J'ai eu le même problème et en fait, je viens de me rendre compte que si vous téléchargez le code source de la page, puis que vous l'ouvrez sur Chrome, votre navigateur vous montrera le chemin exact dans la barre d'adresse. Bonne chance!

0
oba2311