关于使用urllib3替换urllib2

use*_*850 2 python urllib urllib2 urllib3

我试图使用以下代码段。我使用的是Python 3,而urllib3不是urllib2。我想知道如何更换这一部分fh = urllib2.urlopen('http://people.ku.edu/~gbohling/geostats/WGTutorial.zip') data = fh.read()urllib3。谢谢。

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()
Run Code Online (Sandbox Code Playgroud)

t.m*_*dam 6

在python 3中urlopen是其中的一部分,urllib.request 因此您必须修改导入:

from urllib.request import urlopen  
Run Code Online (Sandbox Code Playgroud)

如果要让脚本在python 2和python 3中运行,可以使用:

try:  
    from urllib2 import urlopen
except ImportError:  
    from urllib.request import urlopen
Run Code Online (Sandbox Code Playgroud)