尝试从文件路径创建AttributeError: 'tuple' object has no attribute 'seek'
时收到zipfile.ZipFile
。
我不知道为什么,回溯对我的代码没有任何意义,这是zipfile
模块中的错误,还是我没有正确设置?
我尽可能地遵循所有文件,但没有用。
我在做什么有什么问题,是否有解决方法/解决方法?
也许这是我用urllib
以任何方式犯的错误,就像从直接链接中检索文件一样?
from urllib.request import urlretrieve
from os import path
from zipfile import ZipFile
download_url = "https://www.dropbox.com/s/obiqvrt4m53pmoz/tesseract-4.0.0-alpha.zip?dl=1"
def setup_program():
zip_name = urlretrieve(download_url)
zip_file = ZipFile(zip_name, "r")
zip_file.extractall(path.abspath("__tesseract/"))
zip_file.close()
setup_program() # REMOVE after test
$ python downloader.py
Traceback (most recent call last):
File "downloader.py", line 15, in <module>
setup_program()
File "downloader.py", line 11, in setup_program
zip_file = ZipFile(zip_name, "r")
File "C:\Python36\lib\zipfile.py", line 1100, in __init__
self._RealGetContents()
File "C:\Python36\lib\zipfile.py", line 1163, in _RealGetContents
endrec = _EndRecData(fp)
File "C:\Python36\lib\zipfile.py", line 241, in _EndRecData
fpin.seek(0, 2)
AttributeError: 'tuple' object has no attribute 'seek'
提前致谢,我们将不胜感激。
答案 0 :(得分:2)
urlretrieve()
返回本地文件名和标题的元组。您应该获取该元组中的第一项并将其传递给ZipFile
而不是元组本身。
zip_name, _ = urlretrieve(download_url)