我试图下载并打开一个压缩文件,似乎无法使用zipfile文件类型句柄.我在运行这个时遇到错误“AttributeError:addinfourl实例没有属性’seek’”:
import zipfile
import urllib2
def download(url,directory,name):
webfile = urllib2.urlopen('http://www.sec.gov'+url)
webfile2 = zipfile.ZipFile(webfile)
content = zipfile.ZipFile.open(webfile2).read()
localfile = open(directory+name, 'w')
localfile.write(content)
localfile.close()
return()
download(link.get("href"),'./fails_data', link.text)
解决方法:
你不能在urllib2.urlopened文件上寻找.它支持的方法如下:http://docs.python.org/library/urllib.html#urllib.urlopen.
您必须检索文件(可能使用urllib.urlretrieve,http://docs.python.org/library/urllib.html#urllib.urlretrieve),然后使用zipfile.
或者,您可以读取()urlopened文件,然后将其放入StringIO,然后使用zipfile,如果您想要内存中的压缩数据.如果您只想提取文件而不是使用read,请查看zipfile的extract和extract_all方法.