2017-07-10 6 views
0

J'essayais d'utiliser le segment de code suivant. J'utilise Python 3, qui a urllib3 au lieu de urllib2. Je voudrais savoir comment remplacer cette pièce fh = urllib2.urlopen('http://people.ku.edu/~gbohling/geostats/WGTutorial.zip') data = fh.read() dans urllib3. Merci.concernant l'utilisation de urllib3 pour remplacer urllib2

clusterfile = 'ZoneA.dat' 
if not os.path.isfile(clusterfile): 
    fh = urllib2.urlopen('http://people.ku.edu/~gbohling/geostats/WGTutorial.zip') 
    data = fh.read() 
    fobj = StringIO.StringIO(data) 
    myzip = zipfile.ZipFile(fobj,'r') 
    myzip.extract(clusterfile) 
    fobj.close() 
    fh.close() 
+4

Non, urllib3 est une bibliothèque tierce. Le remplacement de urllib2 dans Python 3 est ['urllib.request'] (https://docs.python.org/3/library/urllib.request.html#module-urllib.request), et vous l'utilisez exactement dans le de la même façon. –

+0

@Daniel, merci. – user297850

Répondre

1

En python 3 urlopen fait partie de urllib.request donc vous devez modifier vos importations:

from urllib.request import urlopen 

Si vous voulez que votre script à exécuter en python 2 et Python 3, vous pouvez utiliser:

try: 
    from urllib2 import urlopen 
except ImportError: 
    from urllib.request import urlopen