tkFileDialog和Zipfile错误:“AttributeError:'_ io.TextIOWrapper'对象没有属性'namelist'”

时间:2017-11-29 21:33:51

标签: python tkinter zipfile

我正在尝试使用tkfiledialog来选择文件,然后使用Zipfile来提取内容。

from zipfile import ZipFile
from tkinter import filedialog


ZipFile.extractall(filedialog.askopenfile())

返回此错误:

AttributeError: '_io.TextIOWrapper' object has no attribute 'namelist'
谷歌搜索它没有给我一个明确的答案,但我尝试了几个.zip文件并得到了消息。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

filedialog.askopenfile()返回一个文件对象,但ZipFile.extractall接受一个字符串(对于路径)。你想要的是filedialog.askopenfilename(),它只返回所选文件的绝对文件路径(这意味着ZipFile可以使用它)

希望这有帮助!

答案 1 :(得分:1)

您正在错误地使用zipfile库。试试这个:

from zipfile import ZipFile
from tkinter import filedialog


zip_file = ZipFile(filedialog.askopenfilename())
zip_file.extractall()