Python Mypy属性错误

Python Mypy属性错误,python,mypy,Python,Mypy,我有一个python3.4项目,最近我决定使用mypy来更好地理解它 这段代码可以工作,但使用mypy检查时会弹出一个错误: import zipfile def zip_to_txt(zip: typing.IO[bytes]) -> BytesIO: zz = zipfile.ZipFile(zip) output = BytesIO() for line, info in enumerate(zz.filelist): date = "%d-%02d-%02d %02d:%

我有一个python3.4项目,最近我决定使用mypy来更好地理解它

这段代码可以工作,但使用mypy检查时会弹出一个错误:

import zipfile

def zip_to_txt(zip: typing.IO[bytes]) -> BytesIO:
zz = zipfile.ZipFile(zip)
output = BytesIO()
for line, info in enumerate(zz.filelist):
    date = "%d-%02d-%02d %02d:%02d:%02d" % info.date_time[:6]
    output.write(str.encode("%-46s %s %12d\n" % (info.filename, date, info.file_size)))
output.seek(0, 0)
return output
错误:

PyPreviewGenerator/file\u converter.py:170:错误:“ZipFile”没有属性“filelist”
(与此行相对应:
对于行,枚举(zz.filelist)中的信息:

但是当我查看ZipFile类内部时,我可以清楚地看到该属性存在。

那么为什么会出现错误呢?有什么办法可以解决吗?

简而言之,原因是
文件列表
属性没有记录在Typeshed中,Typeshed是stdlib/各种第三方库的类型存根集合。你可以亲自看看

为什么不包括
文件列表
?嗯,因为它实际上看起来并不是一个。如果您在文档中搜索,您会看到
文件列表
在任何地方都没有提到


相反,您应该调用,它返回您想要的内容(看看您是否好奇)。您会注意到
infolist()
确实是。

谢谢,我不知道需要使用它,因为它是用mypy编写的文档。