2017-11-29 9 views
-1

ファイルを選択するためにtkfiledialogを使用しようとしていますが、Zipfileを使用して内容を抽出しようとしています。それは私に明確な答えを与えていないグーグルtkFileDialogとZipfileエラー: "AttributeError: '_io.TextIOWrapper'オブジェクトに属性 'namelist'がありません。

AttributeError: '_io.TextIOWrapper' object has no attribute 'namelist' 

が、私はいくつかの.zipファイルを試してみましたが、メッセージが表示されました:このエラーを返します

from zipfile import ZipFile 
from tkinter import filedialog 


ZipFile.extractall(filedialog.askopenfile()) 

。何か案は?

+0

「extractall」のマニュアルには、最初のパラメータがファイルパスであることが記載されています。 'askopenfile()'はファイルパスを返しません。 –

答えて

0

filedialog.askopenfile()はファイルオブジェクトを返しますが、ZipFile.extractallは文字列(パス)を取ります。あなたが望むのはfiledialog.askopenfilename()です。これは選択したファイルの絶対ファイルパスを返します(つまり、ZipFileが使用できることを意味します)。

これは役に立ちます。

+0

それはそれをしました!たぶんばかげた質問に答えてくれてありがとう。あなたは多くの悪化を終わらせるだけです。 – clarktwain

+0

@clarktwain答えが正しい場合は、それを正しいものとしてマークして、同じ問題を持つ他の人がすぐに答えを見つけることができるようにしてください。 –

0

zipfileライブラリを誤って使用しています。これを試してください:

from zipfile import ZipFile 
from tkinter import filedialog 


zip_file = ZipFile(filedialog.askopenfilename()) 
zip_file.extractall() 
関連する問題